[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