[cfe-dev] [LLVMdev] Unwind behaviour in Clang/LLVM

Renato Golin renato.golin at linaro.org
Mon Feb 10 00:44:30 PST 2014


On 10 February 2014 02:59, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> It has to be an attribute because of LTO. You can LTO a file compiled
> with -fasynchronous-unwind-tables and one with
> -fno-asynchronous-unwind-tables. That is why we have the uwtable
> attribute.

Hi Rafael,

I've removed the -arm-disable-ehabi flag already, and I'm planning on
using the uwtable attribute to determine if we need to emit the unwind
tables or not, just like DwarfCFIException. What is the real semantics
of uwtable?

I don't see that attribute too often, but I still see tables being
emitted in x86_64. The rules on what to emit in beginFunction() are a
bit convoluted, and I guess that's because uwtables' semantics is not
definite. I was hoping for something a bit stronger, because we do
lose a lot of information in the back-end, such as what exception
style is has (depending on the target, language, flags).

Is there any definitive explanation on the complete semantics of
uwtables and nounwind? I could be wrong, but from what I can see,
beginFunction() is based on circumstantial behaviour, not explicit
semantics.

cheers,
--renato




More information about the cfe-dev mailing list