[llvm-commits] [patch] Change how we handle mandatory unwind tables

Rafael Ávila de Espíndola rafael.espindola at gmail.com
Wed May 25 05:35:16 PDT 2011


>> * clang -c foo.c
>> * clang -c -fno-asynchronous-unwind-table- foo.c
>>
>> While on x86_64 the following two are:
>>
>> * clang -c foo.c
>> * clang -c -fasynchronous-unwind-tables foo.c
>
> that's kind of a pity, since it would be nice if at codegen time (i.e. link
> time) it was possible to specify -f(no)-asynchronous-unwind-tables and have
> this apply to all functions that didn't get an explicit
> -f(no)-asynchronous-unwind-tables when first compiled.  If nothing is
> specified at codegen time then the ABI default would be used (currently the
> front-end is injecting this ABI information; is there any reason that
> codegen couldn't do it?).

We could do it. I can think of some reasons why we shouldn't.

First, it is more likely to get used by accident than not with someone 
using CFLAGS while linking.

Second, it would be fairly different from how we handle other similar 
issues. For example, we don't carry a signed char, unsigned char and a 
select at codegen time char.

Last but not least, it would mean that adding LTO could still change the 
semantics. With this change the user can select which functions get an 
entry in the unwind tables using exactly the same tools he uses when not 
doing LTO.

> Ciao, Duncan.

Cheers,
Rafael




More information about the llvm-commits mailing list