[LLVMdev] EHABI: Remaining issues

Renato Golin renato.golin at linaro.org
Thu Mar 13 06:15:21 PDT 2014


Hi Keith, Anton, Logan,

Last time we spoke about ARM unwinding, we agreed to have both CFI and
directive variants in ARM, so that both EH and debuggers/profilers
could correctly unwind the stack. The problem, obviously, is that we
now have redundant information and I decided to have a go commoning
them up.

One of the issues, I think, is GNU compatibility (so GAS can generate
the tables correctly when not using the integrated assembler), and it
seems there GCC also emits both EHABI directives and Dwarf, so I don't
think we'll be able to move away from it. Since this is only relevant
in debug/profiling mode, and the only problem is code size, I think
this is something we can live with. Do you guys agree with it?

Another issue is the usage of EH tables in C code. I believe the
consensus is that it may not be the most optimal for never-exceptional
code, but it's the safest default option. The only thing remaining is
to choose a way to disable them via some flag. As weird as
-fno-exceptions sounds for C code, I think we'll have to go with it.
Any other ideas?

Finally, Keith, do you have some internal EHABI test you can run Clang
on? Does any one know of a large, self contained code, that makes
heavy use of exceptions?

cheers,
--renato



More information about the llvm-dev mailing list