[llvm-commits] [llvm-gcc-4.2] r49253 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Dale Johannesen dalej at apple.com
Mon Apr 7 11:37:41 PDT 2008


On Apr 7, 2008, at 12:28 AM, Duncan Sands wrote:
>
> I think we all agree about what the final effect of -funwind-tables  
> should
> be.  For me the only question is whether -funwind-tables should be  
> represented
> in the IR or not, and if so how.  My preference goes to an llc  
> option.  This
> has the disadvantage that you can't control the -funwind-tables  
> effect on a
> per-function basis, but based on the Darwin use case you describe  
> that isn't
> needed anyway (nor for Ada).
>
>> Now, how do we reconcile this with what Ada does, and what info do we
>> put in the IR to make it happen?
>
> Ada is getting -funwind-tables because it uses -fnon-call-exceptions  
> (which
> we don't currently support).  I actually don't see why -fnon-call- 
> exceptions
> would need -funwind-tables; it will I guess become clear one way or  
> another
> when support is added for -fnon-call-exceptions.  However Ada also  
> has a stack
> traceback facility which uses the dwarf unwinder, and for that to  
> work it
> presumably needs -funwind-tables.  In short: Ada doesn't seem to  
> need anything
> particularly special here, it's basically the same as Darwin.

Ok, good.

It's certainly possible to compile some files with -funwind-tables and  
others without.
Unlike exceptions, however, I can't think of a case where this happens  
or is useful.
Perhaps an llc flag is good enough; the default should be not to prune  
unwinding
info, however, which is conservatively correct.  I'll look at that.





More information about the llvm-commits mailing list