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 /gcc/tree-if-conv.c | |
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
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 8 |
1 files changed, 4 insertions, 4 deletions
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) |