summaryrefslogtreecommitdiff
path: root/gcc/loop-invariant.c
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2009-02-04 20:54:36 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2009-02-04 20:54:36 +0000
commit48e8382e95ddc134f5f3c577b87558f11ad8ebeb (patch)
tree18492e6dd523a8d915f6d21a6db7b043ec15a9dd /gcc/loop-invariant.c
parent69349ea551c84f1a40c8cb51342ea8075eece875 (diff)
downloadgcc-48e8382e95ddc134f5f3c577b87558f11ad8ebeb.tar.gz
re PR rtl-optimization/37889 (SEGV, conditional execution proactively executed the false arm.)
2009-02-04 Paolo Bonzini <bonzini@gnu.org> Hans-Peter Nilsson <hp@axis.com> PR rtl-optimization/37889 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments. Move offset handling from PLUS to before the switch. Use new arguments when considering SYMBOL_REFs too. (rtx_addr_can_trap_p): Pass dummy offset and size. (enum may_trap_p_flags): Remove. (may_trap_p_1): Pass size from MEM_SIZE. PR rtl-optimization/38921 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p. * rtl.h (may_trap_after_code_motion_p): Delete prototype. * rtlanal.c (may_trap_after_code_motion_p): Delete. (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags. Co-Authored-By: Hans-Peter Nilsson <hp@axis.com> From-SVN: r143939
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r--gcc/loop-invariant.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index 9c0be87bc87..8b8345fe5fd 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -824,7 +824,7 @@ find_invariant_insn (rtx insn, bool always_reached, bool always_executed)
return;
/* We cannot make trapping insn executed, unless it was executed before. */
- if (may_trap_after_code_motion_p (PATTERN (insn)) && !always_reached)
+ if (may_trap_or_fault_p (PATTERN (insn)) && !always_reached)
return;
depends_on = BITMAP_ALLOC (NULL);