From 2bc631143e367f48a6d92e396dd45858080367dc Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 31 May 2000 07:33:02 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/ifcvt.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1994c7f7669..35680e7ffa3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) + + * 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. + Tue May 30 22:25:57 2000 Alexandre Oliva * optabs.c (prepare_float_lib_cmp): Protect *px and *py from diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 1bdfae35604..ee2d143e241 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; -- 2.30.2