flow.c (life_analysis): Do not conside the stack pointer live at the end of a functio...
authorJeffrey A Law <law@cygnus.com>
Wed, 11 Feb 1998 00:18:51 +0000 (00:18 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 11 Feb 1998 00:18:51 +0000 (17:18 -0700)
        * flow.c (life_analysis): Do not conside the stack pointer live at
        the end of a function if the fucntio ncalls alloca.
        (mark_used_regs): Similarly.

From-SVN: r17839

gcc/ChangeLog
gcc/flow.c

index 8e151a0a051b637f748437aea7826156a0dd5019..6841d3979a7f3cfbdfbd90826639a45a8314c5c7 100644 (file)
@@ -1,3 +1,9 @@
+Wed Feb 11 01:17:39 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * flow.c (life_analysis): Do not conside the stack pointer live at
+       the end of a function if the fucntio ncalls alloca.
+       (mark_used_regs): Similarly.
+
 1998-02-10  John F Carr  <jfc@mit.edu>
 
        * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative
index 4769feb5f005d679669155063cba18700cf77425..3895f53310a8131b41abe0e131a6bcb2ca6c7cae 100644 (file)
@@ -1094,7 +1094,9 @@ life_analysis (f, nregs)
   if (n_basic_blocks > 0)
 #ifdef EXIT_IGNORE_STACK
     if (! EXIT_IGNORE_STACK
-       || (! FRAME_POINTER_REQUIRED && flag_omit_frame_pointer))
+       || (! FRAME_POINTER_REQUIRED
+           && ! current_function_calls_alloca
+           && flag_omit_frame_pointer))
 #endif
       {
        /* If exiting needs the right stack value,
@@ -2656,7 +2658,9 @@ mark_used_regs (needed, live, x, final, insn)
 
 #ifdef EXIT_IGNORE_STACK
       if (! EXIT_IGNORE_STACK
-         || (! FRAME_POINTER_REQUIRED && flag_omit_frame_pointer))
+         || (! FRAME_POINTER_REQUIRED
+             && ! current_function_calls_alloca
+             && flag_omit_frame_pointer))
 #endif
        SET_REGNO_REG_SET (live, STACK_POINTER_REGNUM);