[llvm-commits] [PATCH] Emit ARM EHABI unwinding instructions for 2 more Thumb instructions

James Molloy james.molloy at arm.com
Wed Jan 18 07:24:07 PST 2012


Hi,

--help-hidden will show options like -disable-fp-elim. Apart from that, a grep and some time!

Cheers,

James

-----Original Message-----
From: Evgeniy Stepanov [mailto:eugeni.stepanov at gmail.com] 
Sent: 18 January 2012 15:17
To: James Molloy
Cc: Anton Korobeynikov; llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [PATCH] Emit ARM EHABI unwinding instructions for 2 more Thumb instructions

Ok, I've got it. The missing option was -disable-fp-elim.

Is there a general recipe for finding out things like this?

And thanks, running with -mtriple=thumbv7 uncovered even more
unsupported instructions.

On Wed, Jan 18, 2012 at 6:43 PM, James Molloy <james.molloy at arm.com> wrote:
> Hi,
>
> Just checking, are you testing Thumb1 or Thumb2?
>
> Because v4t uses thumb1. You'd want V6 or V7 for Thumb2 - you want "-triple=thumbv7" (not -march, as I erroneously said before).
>
> Cheers,
>
> James
>
> -----Original Message-----
> From: Evgeniy Stepanov [mailto:eugeni.stepanov at gmail.com]
> Sent: 18 January 2012 14:26
> To: James Molloy
> Cc: Anton Korobeynikov; llvm-commits at cs.uiuc.edu
> Subject: Re: [llvm-commits] [PATCH] Emit ARM EHABI unwinding instructions for 2 more Thumb instructions
>
> Yes, I did something along these lines. I meant "< 1.ll" at the end of
> the llc command.
>
> Unfortunately, the llc command does not fail. Must be some other
> option or setting by the clang driver? (btw, it says -march=thumbv7 is
> invalid; I'm using -march=thumb instead).
>
> For the reference, 1.ll:
>
> ; ModuleID = '1.ii'
> target datalayout =
> "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:32-n32-S64"
> target triple = "thumbv4t--linux-gnueabi"
>
> define void @_Z1fv() nounwind {
> entry:
>  ret void
> }
>
> define void @_Z1gv() nounwind {
> entry:
>  call void @_Z1fv()
>  ret void
> }
>
> On Wed, Jan 18, 2012 at 6:18 PM, James Molloy <james.molloy at arm.com> wrote:
>> Hi Evgeniy,
>>
>> If I understand you correctly, you have some C code and you want to create
>> an equivalent llc command so your testcase doesn't rely on clang?
>>
>> If so:
>>
>> Clang -ccc-host-triple thumb-linux-gnueabi -S -emit-llvm 1.ii -o 1.ll
>> Llc -march=thumbv7 -arm-enable-ehabi -O0 1.ll -o -
>>
>> Llc acts on IR input, not C code.
>>
>> Hope this helps,
>>
>> James
>>
>> -----Original Message-----
>> From: llvm-commits-bounces at cs.uiuc.edu
>> [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Evgeniy Stepanov
>> Sent: 18 January 2012 14:14
>> To: Anton Korobeynikov
>> Cc: llvm-commits at cs.uiuc.edu
>> Subject: Re: [llvm-commits] [PATCH] Emit ARM EHABI unwinding instructions
>> for 2 more Thumb instructions
>>
>> Hm, I've got a problem here. Maybe you can help me?
>>
>> The following fails:
>>
>> # cat 1.ii
>> void f() {
>> }
>> void g() {
>>    f();
>> }
>> # ./Release+Asserts/bin/clang -ccc-host-triple arm-linux-gnueabi 1.ii
>> -S -mthumb  -mllvm -arm-enable-ehabi
>>
>> How do I build an llc command line?
>> The naive
>>
>> ./Release+Asserts/bin/llc -march=thumb -arm-enable-ehabi -O=0 <1.ii
>>
>> does not expose the bug.
>>
>> On Wed, Jan 18, 2012 at 4:29 PM, Anton Korobeynikov <asl at math.spbu.ru>
>> wrote:
>>> Hi Evgeniy
>>>
>>>> And here is the patch.
>>> Yes, but please add the testcase, so they won't be missed in the future.
>>>
>>> --
>>> With best regards, Anton Korobeynikov
>>> Faculty of Mathematics and Mechanics, Saint Petersburg State University
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>
>>
>
>
>
>








More information about the llvm-commits mailing list