]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/13653 (-O2 -funroll-loop miscompiles POOMA testcase)
authorEric Botcazou <ebotcazou@libertysurf.fr>
Sat, 29 May 2004 23:27:30 +0000 (01:27 +0200)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 29 May 2004 23:27:30 +0000 (23:27 +0000)
PR optimization/13653
* loop.c (loop_givs_rescan): When reducing a non-replaceable giv,
clear the RTX_UNCHANGING_P flag.

From-SVN: r82433

gcc/ChangeLog
gcc/loop.c

index aa2183f5b98e63f8210d7386503a927c0e613920..15d13c9c7bc1753ca2c95a8f5e81d682067e5482 100644 (file)
@@ -1,3 +1,9 @@
+2004-05-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR optimization/13653
+       * loop.c (loop_givs_rescan): When reducing a non-replaceable giv,
+       clear the RTX_UNCHANGING_P flag.
+
 2004-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR bootstrap/14671
index 5e42d6153bd79938c6af94b3878c57d84b19fc9d..6dee48f4f23bf1cca463dc8afb147fef29b2cca4 100644 (file)
@@ -4924,6 +4924,9 @@ loop_givs_rescan (loop, bl, reg_map)
                                          gen_move_insn (v->dest_reg,
                                                         v->new_reg));
 
+         /* We must do this now because we just emitted a new set.  */
+         RTX_UNCHANGING_P (v->dest_reg) = 0;
+
          /* The original insn may have a REG_EQUAL note.  This note is
             now incorrect and may result in invalid substitutions later.
             The original insn is dead, but may be part of a libcall