diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-02-11 00:18:51 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-02-10 17:18:51 -0700 |
commit | 0200b5ed0ac6d2285f2d473c6cf4f069819f135b (patch) | |
tree | 6672c19c51874af310b6d048b40dbd836792ee7c /gcc/flow.c | |
parent | c29c4e238eec39652ffbcece7250746f3b3de66c (diff) | |
download | gcc-0200b5ed0ac6d2285f2d473c6cf4f069819f135b.zip gcc-0200b5ed0ac6d2285f2d473c6cf4f069819f135b.tar.gz gcc-0200b5ed0ac6d2285f2d473c6cf4f069819f135b.tar.bz2 |
flow.c (life_analysis): Do not conside the stack pointer live at the end of a function if...
* 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
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -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); |