[LLVMdev] exception handling broken on x86-64?

Dale Johannesen dalej at apple.com
Sun Feb 10 19:52:57 PST 2008


On Feb 10, 2008, at 7:04 PM, Evan Cheng wrote:

> Where we are on the subject... Are we sure EH is done for x86?
>
> These two tests have never worked on Mac OS X / x86:
> SPEC/CINT2006/471.omnetpp
> Shootout-C++/except
>
> Evan

Shootout-C++/except works for me.  Anton suggests there may be an  
issue with the unwinding libraries and he may be right, I'll look at  
it with you tomorrow.

> On Feb 9, 2008, at 2:57 PM, Dale Johannesen wrote:
>
>>
>> On Feb 9, 2008, at 2:48 PM, Anton Korobeynikov wrote:
>>>> After comparing the generated assembler code with native gcc code I
>>>> think the generated code is fine, just the exception handler info  
>>>> in
>>>> the non-code sections is broken/missing.
>>> It seems, that EH dwarf information emission is disabled in
>>> X86TargetAsmInfo.cpp. Remove the is64Bit() condition near
>>> "SupportExceptionHandling = true" line in X86Subtarget::isELF
>>> section.
>>>
>>> Also, don't forget to add --enable-eh switch to llc invocation.
>>
>> Just in case it doesn't work the first time:) patch 46029 might be
>> helpful.  That made it work on Darwin for me, and it's possible some
>> of the changes there are also applicable to Linux.  Compare your .s
>> with g++ output.
>>
>>> You will need to link .S with your native unwinding runtime (so, use
>>> g++
>>> to link, not llvm-g++)
>>
>> This is not necessary on Darwin, btw, the unwinding stuff Just Worked
>> too.
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list