X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ftree-ssa-ifcombine.c;h=cec5868c6364160a79cc3f9effa5633af91088bc;hb=78220694a114e816705e919fc68a183ca474f755;hp=f52585ca20e8d89ec06df272d40f736722b2dba5;hpb=8c4c00c181e6df4f0a9afc76e4c9edbbc1c2fd41;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c index f52585ca20e..cec5868c636 100644 --- a/gcc/tree-ssa-ifcombine.c +++ b/gcc/tree-ssa-ifcombine.c @@ -483,6 +483,9 @@ ifcombine_iforif (basic_block inner_cond_bb, basic_block outer_cond_bb) /* Do it. */ t = fold_build2 (code, boolean_type_node, TREE_OPERAND (ccond2, 0), TREE_OPERAND (ccond2, 1)); + t = canonicalize_cond_expr_cond (t); + if (!t) + return false; COND_EXPR_COND (inner_cond) = t; update_stmt (inner_cond); @@ -602,7 +605,10 @@ gate_ifcombine (void) return 1; } -struct tree_opt_pass pass_tree_ifcombine = { +struct gimple_opt_pass pass_tree_ifcombine = +{ + { + GIMPLE_PASS, "ifcombine", /* name */ gate_ifcombine, /* gate */ tree_ssa_ifcombine, /* execute */ @@ -617,6 +623,6 @@ struct tree_opt_pass pass_tree_ifcombine = { TODO_dump_func | TODO_ggc_collect | TODO_update_ssa - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } };