OSDN Git Service

* cse.c (cse_set_around_loop): When changing a constant load
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Nov 2003 21:45:26 +0000 (21:45 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Nov 2003 21:45:26 +0000 (21:45 +0000)
to a register -register copy, add a REG_EQUAL note.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74007 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cse.c

index 4af2b92..e7a9393 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-27  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * cse.c (cse_set_around_loop): When changing a constant load
+       to a register -register copy, add a REG_EQUAL note.
+
 2003-11-27  Randolph Chung  <tausq@debian.org>
            John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
index 7612a5a..faaf187 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -6676,6 +6676,10 @@ cse_set_around_loop (rtx x, rtx insn, rtx loop_start)
                          }
                        else
                          {
+                           if (CONSTANT_P (SET_SRC (set))
+                               && ! find_reg_equal_equiv_note (insn))
+                             set_unique_reg_note (insn, REG_EQUAL,
+                                                  SET_SRC (set));
                            if (control_flow_insn_p (p))
                              /* p can cause a control flow transfer so it
                                 is the last insn of a basic block.  We can't