diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-05-28 18:38:06 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-05-28 18:38:06 +0000 |
commit | d10e857ebb356b77527167cc55dac1cea5e37be0 (patch) | |
tree | 9193ade9e3c2d60ce47ec570c50f74ab7c4c55c3 | |
parent | 300d430f06c8b7fc59fa6c82aeae81644c8c7b17 (diff) | |
download | gcc-d10e857ebb356b77527167cc55dac1cea5e37be0.zip gcc-d10e857ebb356b77527167cc55dac1cea5e37be0.tar.gz gcc-d10e857ebb356b77527167cc55dac1cea5e37be0.tar.bz2 |
Check the if-convertibility of phi nodes in non predicated BBs.
2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/44293
* tree-if-conv.c (if_convertible_loop_p): Check the
if-convertibility of phi nodes in non predicated BBs.
From-SVN: r159990
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-if-conv.c | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46345e1..bd8239e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-05-28 Sebastian Pop <sebastian.pop@amd.com> + + 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 <joseph@codesourcery.com> * gcc.c (error, warning, inform): Remove duplicate ": " in output. diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 8dc1de6..c338ecb 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) |