From 0200b5ed0ac6d2285f2d473c6cf4f069819f135b Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 11 Feb 1998 00:18:51 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/flow.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e151a0a051..6841d3979a7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 * config/sparc/sparc.md (movdi_v8plus): Output stx on alternative diff --git a/gcc/flow.c b/gcc/flow.c index 4769feb5f00..3895f53310a 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -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);