diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-26 17:37:33 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-26 17:37:33 +0000 |
commit | fb0c974d0fe4f065e1d8d328c9c3965e9b8db553 (patch) | |
tree | 0d7eb68bfe51ab28e40b7b4005702e4ca1a156ff /gcc/tree-ssa-operands.h | |
parent | be70590f5139813bebb6cea275d56bdf0d361182 (diff) | |
download | gcc-fb0c974d0fe4f065e1d8d328c9c3965e9b8db553.tar.gz |
* tree-flow-inline.h (op_iter_next_must_and_may_def): New.
(op_iter_init_must_and_may_def): Likewise.
(unmodifiable_var_p): Move to a later point in the file.
* tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
* tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
(dse_record_phis): Directly check for virtual operands rather than
using need_imm_uses_for.
(dse_optimize_stmt): Handle V_MUST_DEF operands. Handle case where
store has multiple V_{MAY,MUST}_DEF operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98780 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-operands.h')
-rw-r--r-- | gcc/tree-ssa-operands.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-ssa-operands.h b/gcc/tree-ssa-operands.h index 288831900a7..2d531c8b64c 100644 --- a/gcc/tree-ssa-operands.h +++ b/gcc/tree-ssa-operands.h @@ -291,4 +291,11 @@ typedef struct ssa_operand_iterator_d !op_iter_done (&(ITER)); \ op_iter_next_mustdef (&(KILLVAR), &(DEFVAR), &(ITER))) +/* This macro executes a loop over the V_{MUST,MAY}_DEF of STMT. The def + and kill for each V_{MUST,MAY}_DEF is returned in DEFVAR and KILLVAR. + ITER is an ssa_op_iter structure used to control the loop. */ +#define FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND(DEFVAR, KILLVAR, STMT, ITER)\ + for (op_iter_init_must_and_may_def (&(ITER), STMT, &(KILLVAR), &(DEFVAR));\ + !op_iter_done (&(ITER)); \ + op_iter_next_must_and_may_def (&(KILLVAR), &(DEFVAR), &(ITER))) #endif /* GCC_TREE_SSA_OPERANDS_H */ |