* tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
Set it when one of the replacement functions returned true.
Return TODO_cleanup_cfg if cfgchanged is true.
(pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111920
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-03-09 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
+ Set it when one of the replacement functions returned true.
+ Return TODO_cleanup_cfg if cfgchanged is true.
+ (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
+
2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
* combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
2006-03-09 Adam Nemet <anemet@caviumnetworks.com>
* combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
basic_block bb;
basic_block *bb_order;
unsigned n, i;
basic_block bb;
basic_block *bb_order;
unsigned n, i;
+ bool cfgchanged = false;
/* Search every basic block for COND_EXPR we may be able to optimize.
/* Search every basic block for COND_EXPR we may be able to optimize.
/* Do the replacement of conditional if it can be done. */
if (conditional_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
/* Do the replacement of conditional if it can be done. */
if (conditional_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
else if (value_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
else if (value_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
else if (abs_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
else if (abs_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
- ;
- else
- minmax_replacement (bb, bb1, e1, e2, phi, arg0, arg1);
+ cfgchanged = true;
+ else if (minmax_replacement (bb, bb1, e1, e2, phi, arg0, arg1))
+ cfgchanged = true;
+
+ /* If the CFG has changed, we should cleanup the CFG. */
+ return cfgchanged ? TODO_cleanup_cfg : 0;
}
/* Returns the list of basic blocks in the function in an order that guarantees
}
/* Returns the list of basic blocks in the function in an order that guarantees
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
- TODO_cleanup_cfg
- | TODO_dump_func
| TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow
| TODO_ggc_collect
| TODO_verify_ssa
| TODO_verify_flow