diff options
author | Jeffrey A Law <law@cygnus.com> | 2000-05-31 07:33:02 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-05-31 01:33:02 -0600 |
commit | 2bc631143e367f48a6d92e396dd45858080367dc (patch) | |
tree | 3c396a1a4ed7f6888d20c5eba0ac9b9cea7cfd36 /gcc/ifcvt.c | |
parent | 71a19881247be278a9fb072347c07a9411372e10 (diff) | |
download | gcc-2bc631143e367f48a6d92e396dd45858080367dc.zip gcc-2bc631143e367f48a6d92e396dd45858080367dc.tar.gz gcc-2bc631143e367f48a6d92e396dd45858080367dc.tar.bz2 |
ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn in the block is more than just a simple conditional...
* ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
in the block is more than just a simple conditional branch.
(noce_process_if_block): Similarly.
From-SVN: r34287
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 1bdfae3..ee2d143 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -313,6 +313,11 @@ cond_exec_process_if_block (test_bb, then_bb, else_bb, join_bb) if (! test_expr) return FALSE; + /* If the conditional jump is more than just a conditional jump, + then we can not do conditional execution conversion on this block. */ + if (!onlyjump_p (test_bb->end)) + return FALSE; + /* Collect the bounds of where we're to search. */ then_start = then_bb->head; @@ -1106,6 +1111,11 @@ noce_process_if_block (test_bb, then_bb, else_bb, join_bb) if (! cond) return FALSE; + /* If the conditional jump is more than just a conditional jump, + then we can not do if-conversion on this block. */ + if (! onlyjump_p (jump)) + return FALSE; + /* We must be comparing objects whose modes imply the size. */ if (GET_MODE (XEXP (cond, 0)) == BLKmode) return FALSE; |