[ARM] [Bug 18710] ping Only generate .ARM.exidx and .ARM.extab when needed in EHABI

Christian Bruel via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 26 00:41:16 PDT 2017


Hello,

Almost a month since the last post, just to keep the proposal alive, 
here a gentle ping.

Summary: This patch disable the emission of the unwind table entries 
when exceptions tables are not needed for the ARM EHABI. This saves a 
couple of bytes in the text section for each function in 'C' and makes 
the -fno-unwind-tables option effective.

The first attempt used a hidden clang flag to pass the information. 
After a few comments and rethought, the amended patch restate the 
uwtable and nounwind attributes semantic for ARM so that :

nil (default)                 = Function does not need an entry
nounwind                    = Function does not throw
uwtable                       = Need an entry because an exception might 
pass by
uwtable + nounwind   = Need an entry even if no exception pass by

https://reviews.llvm.org/D31139

https://reviews.llvm.org/D31140

Regtested with the testsuite, modifying the attribute list to reflect 
this new semantic. Also did a few manual checks that the cfi dwarf 
unwind info are still correctly generated for debug and that 
-fexceptions, -funwind-tables do what's expected for C and C++.

Best Regards

Christian



More information about the llvm-commits mailing list