This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: stack height reduction in tree-SSA


On Wed, 2004-09-01 at 11:18, Dale Johannesen wrote:
> On Sep 1, 2004, at 9:49 AM, Jeffrey A Law wrote:
> > We've discussed various means of trying to tackle the problem of
> > sharing stack slots to mitigate the stack space problems.  If
> > someone is interested in tackling this problem, I'd suggest
> > they ping Richard Henderson who seemed to have the best handle
> > on a potential solution when we last discussed it as a group
> > a few months ago.
> 
> One thing to bear in mind is that it is *not* always beneficial to 
> reduce stack space as much as possible, because this inhibits
>  scheduling.
Certainly.  IMHO, the only time we ought to be looking to share
stack slots will be for "large" objects with disjoint lifetimes.

IIRC the case that comes up in the kernel boils down to something
like this:

func1 ()
{
  int x[100];
  whatever;
}

func2 ()
{
  func1 ();
  func1 ();
  func1 ();
}

Each instance of func1 that is inlined into func2 creates a new
400 byte stack object even though their lifetimes are disjoint.

The stack hotspot for converting an int<->double or for doing
FP<->int moves is something that we generally don't want to share
as it severely inhibits scheduling and can cause all kinds of
interesting stalls on some chips (the PA comes to mind). 


Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]