This is the mail archive of the gcc-patches@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: avoid unnecessary register saves for setjmp


Chris Lattner writes:
 > On Thu, 27 Nov 2003, Andrew Haley wrote:
 > 
 > > Chris Lattner writes:
 > >  > Zack Weinberg said:
 > >  > > I'm going to take this opportunity to throw in a suggestion I've
 > >  > > made before, which is that setjmp/longjmp should - always, not
 > >  > > just when special variants are used - be converted by the front
 > >  > > end into invocations of the exception-unwinding facility, which
 > >  > > gives us tons more control.
 > >
 > > True.  But the obvious problem with this is that it places a burden on
 > > small applications (boot ROMs, say) that might only have a single
 > > setjmp/longjmp.  These would be forced to include the unwinder and all
 > > its baggage just for that.
 > 
 > Not at all.  For example, somewhat confusingly, the LLVM->C backend
 > actually turns "stack unwinding" operations into setjmp/longjmp
 > calls.  This is basically equivalent to SJLJ exception handling,
 > with all of it's problems, but the point is that you don't _NEED_
 > to include an unwinder.

Well, okay: the front end has turned sjlj into exceptions, and the
back end has turned it all back again.  We get the advantage of better
analysis in the middle.  No problem there; I am only referring to
user-visible changes.

Andrew.


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