diff options
Diffstat (limited to 'gcc/tree-ssa-loop.c')
-rw-r--r-- | gcc/tree-ssa-loop.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index 58ee746..bbcba9c 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -104,8 +104,9 @@ mark_defs_for_rewrite (basic_block bb) block_stmt_iterator bsi; stmt_ann_t ann; def_optype defs; - vdef_optype vdefs; + v_may_def_optype v_may_defs; vuse_optype vuses; + v_must_def_optype v_must_defs; unsigned i; for (stmt = phi_nodes (bb); stmt; stmt = TREE_CHAIN (stmt)) @@ -141,16 +142,23 @@ mark_defs_for_rewrite (basic_block bb) bitmap_set_bit (vars_to_rename, var_ann (var)->uid); } - vdefs = VDEF_OPS (ann); - for (i = 0; i < NUM_VDEFS (vdefs); i++) + v_may_defs = V_MAY_DEF_OPS (ann); + for (i = 0; i < NUM_V_MAY_DEFS (v_may_defs); i++) { - var = SSA_NAME_VAR (VDEF_RESULT (vdefs, i)); + var = SSA_NAME_VAR (V_MAY_DEF_RESULT (v_may_defs, i)); + bitmap_set_bit (vars_to_rename, var_ann (var)->uid); + } + + v_must_defs = V_MUST_DEF_OPS (ann); + for (i = 0; i < NUM_V_MUST_DEFS (v_must_defs); i++) + { + var = SSA_NAME_VAR (V_MUST_DEF_OP (v_must_defs, i)); bitmap_set_bit (vars_to_rename, var_ann (var)->uid); } /* We also need to rewrite vuses, since we will copy the statements and the ssa versions could not be recovered in the copy. We do - not have to do this for operands of VDEFS explicitly, since + not have to do this for operands of V_MAY_DEFS explicitly, since they have the same underlying variable as the results. */ vuses = VUSE_OPS (ann); for (i = 0; i < NUM_VUSES (vuses); i++) |