2015-01-11 Yvan Roux <yvan.roux@linaro.org>
authoryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 11 Jan 2015 19:02:39 +0000 (19:02 +0000)
committeryroux <yroux@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 11 Jan 2015 19:02:39 +0000 (19:02 +0000)
Backport from trunk r217691.
2014-11-18  Jiong Wang  <jiong.wang@arm.com>

* lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
registers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro/gcc-4_9-branch@219437 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog.linaro
gcc/lra-eliminations.c

index 8ebe337..6fa997e 100644 (file)
@@ -1,5 +1,13 @@
 2015-01-11  Yvan Roux  <yvan.roux@linaro.org>
 
+       Backport from trunk r217691.
+       2014-11-18  Jiong Wang  <jiong.wang@arm.com>
+
+       * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
+       registers.
+
+2015-01-11  Yvan Roux  <yvan.roux@linaro.org>
+
        Backport from trunk r215503.
        2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
 
index 2787820..511c98c 100644 (file)
@@ -1164,7 +1164,9 @@ update_reg_eliminate (bitmap insns_with_changed_offsets)
                     ep->from, ep->to);
          /* If after processing RTL we decides that SP can be used as
             a result of elimination, it can not be changed.  */
-         gcc_assert (ep->to_rtx != stack_pointer_rtx);
+         gcc_assert ((ep->to_rtx != stack_pointer_rtx)
+                     || (ep->from < FIRST_PSEUDO_REGISTER
+                         && fixed_regs [ep->from]));
          /* Mark that is not eliminable anymore.  */
          elimination_map[ep->from] = NULL;
          for (ep1 = ep + 1; ep1 < &reg_eliminate[NUM_ELIMINABLE_REGS]; ep1++)