aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop-invariant.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-02-23 22:03:05 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-02-23 21:03:05 +0000
commite755fcf517ba5a4f5e90737ec3290bbbc6ab1bba (patch)
tree0279569a12cde36a792d11397042f36e68a2ff7a /gcc/loop-invariant.c
parent65acccdd22e3fc50f4272bc274e10e96dbbcd527 (diff)
downloadgcc-e755fcf517ba5a4f5e90737ec3290bbbc6ab1bba.zip
gcc-e755fcf517ba5a4f5e90737ec3290bbbc6ab1bba.tar.gz
gcc-e755fcf517ba5a4f5e90737ec3290bbbc6ab1bba.tar.bz2
re PR middle-end/26316 (loop-invariant miscompiles openmp.c)
PR rtl-optimization/26316 * rtlanal.c (enum may_trap_p_flags): New. (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore MEM_NOTRAP_P if flags & MTP_AFTER_MOVE. (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1. (may_trap_after_code_motion_p): New function. * loop-invariant.c (find_identical_invariants): Fix dump formating. (find_invariant_insn): Use may_trap_after_code_motion_p. * rtl.h (may_trap_after_code_motion_p): Declare. From-SVN: r111397
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r--gcc/loop-invariant.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index 3f8f6e3..553e9fe 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -479,7 +479,7 @@ find_identical_invariants (htab_t eq, struct invariant *inv)
if (dump_file && inv->eqto != inv->invno)
fprintf (dump_file,
- "Invariant %d is equivalent to invariant %d.\n ",
+ "Invariant %d is equivalent to invariant %d.\n",
inv->invno, inv->eqto);
}
@@ -775,7 +775,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_p (PATTERN (insn)) && !always_reached)
+ if (may_trap_after_code_motion_p (PATTERN (insn)) && !always_reached)
return;
depends_on = BITMAP_ALLOC (NULL);