diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-06-08 14:57:08 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-06-08 14:57:08 -0700 |
commit | e6726b1f48c83bffa51c002e3eb6edb0fcfba4da (patch) | |
tree | d7acbdb735b5556f64f4ebb8992702211ef9204b /gcc | |
parent | 68f68b904268d8eaa46103a7211b9be4ca6515c8 (diff) | |
download | gcc-e6726b1f48c83bffa51c002e3eb6edb0fcfba4da.zip gcc-e6726b1f48c83bffa51c002e3eb6edb0fcfba4da.tar.gz gcc-e6726b1f48c83bffa51c002e3eb6edb0fcfba4da.tar.bz2 |
(move_movables): Delete REG_EQUAL notes that describe a
non loop invariant value.
From-SVN: r4653
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/loop.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1824,6 +1824,16 @@ move_movables (movables, threshold, insn_count, loop_start, end, nregs) REG_NOTES (i1) = REG_NOTES (p); + /* If there is a REG_EQUAL note present whose value is + not loop invariant, then delete it, since it may + cause problems with later optimization passes. + It is possible for cse to create such notes + like this as a result of record_jump_cond. */ + + if ((temp = find_reg_note (i1, REG_EQUAL, NULL_RTX)) + && ! invariant_p (XEXP (temp, 0))) + remove_note (i1, temp); + if (new_start == 0) new_start = i1; |