diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-28 18:38:06 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-28 18:38:06 +0000 |
commit | 7f6dfba24116c147149176350a08d74389e85de2 (patch) | |
tree | 9193ade9e3c2d60ce47ec570c50f74ab7c4c55c3 /gcc/tree-if-conv.c | |
parent | c2481a2449d8ff28aca20e3aebee8cda6be411ea (diff) | |
download | gcc-7f6dfba24116c147149176350a08d74389e85de2.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159990 138bc75d-0d04-0410-961f-82ee72b054a4
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 8dc1de682be..c338ecbe6f0 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) |