reg-stack.c (straighten_stack): Do nothing if the virtual stack is empty or has a...
authorJeffrey A Law <law@cygnus.com>
Thu, 10 Sep 1998 01:03:02 +0000 (01:03 +0000)
committerJeff Law <law@gcc.gnu.org>
Thu, 10 Sep 1998 01:03:02 +0000 (19:03 -0600)
        * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
        empty or has a single entry.

From-SVN: r22376

gcc/ChangeLog
gcc/reg-stack.c

index 8f86a90b5cfd72b098268a49cbec08b55e788132..dfcb9b571760d468f7468e2f872777114cab6504 100644 (file)
@@ -1,5 +1,8 @@
 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
 
+       * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
+       empty or has a single entry.
+
        * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
        before calling reg_to_stack.
 
index ab400c51f1d12df09ebedd78b1ff7114b732aab6..a7a5fb7cd9022042df90ea8c6e26e6ee70987d70 100644 (file)
@@ -309,6 +309,13 @@ straighten_stack (insn, regstack)
   struct stack_def temp_stack;
   int top;
 
+  /* If there is only a single register on the stack, then the stack is
+     already in increasing order and no reorganization is needed.
+
+     Similarly if the stack is empty.  */
+  if (regstack->top <= 0)
+    return;
+
   temp_stack.reg_set = regstack->reg_set;
 
   for (top = temp_stack.top = regstack->top; top >= 0; top--)