From: spop Date: Fri, 28 May 2010 18:38:06 +0000 (+0000) Subject: Check the if-convertibility of phi nodes in non predicated BBs. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f6dfba24116c147149176350a08d74389e85de2;p=thirdparty%2Fgcc.git Check the if-convertibility of phi nodes in non predicated BBs. 2010-05-28 Sebastian Pop PR middle-end/44293 * tree-if-conv.c (if_convertible_loop_p): Check the if-convertibility of phi nodes in non predicated BBs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159990 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46345e155293..bd8239ee80a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-05-28 Sebastian Pop + + PR middle-end/44293 + * tree-if-conv.c (if_convertible_loop_p): Check the + if-convertibility of phi nodes in non predicated BBs. + 2010-05-28 Joseph Myers * gcc.c (error, warning, inform): Remove duplicate ": " in output. diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 8dc1de682be2..c338ecbe6f02 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -693,6 +693,10 @@ if_convertible_loop_p (struct loop *loop) basic_block bb = ifc_bbs[i]; gimple_stmt_iterator itr; + for (itr = gsi_start_phis (bb); !gsi_end_p (itr); gsi_next (&itr)) + if (!if_convertible_phi_p (loop, bb, gsi_stmt (itr))) + return false; + /* For non predicated BBs, don't check their statements. */ if (!is_predicated (bb)) continue; @@ -700,10 +704,6 @@ if_convertible_loop_p (struct loop *loop) for (itr = gsi_start_bb (bb); !gsi_end_p (itr); gsi_next (&itr)) if (!if_convertible_stmt_p (loop, bb, gsi_stmt (itr))) return false; - - for (itr = gsi_start_phis (bb); !gsi_end_p (itr); gsi_next (&itr)) - if (!if_convertible_phi_p (loop, bb, gsi_stmt (itr))) - return false; } if (dump_file)