[LLVMdev] ARM assembly
Amir Yazdanbakhsh
amir.yazdanbakhsh at gmail.com
Mon Dec 10 08:09:47 PST 2012
I used your code and it works fine. Once I increase the number of variable
it uses the extra registers which I added. I have another problem.
To generate the assembly file for new ARM machine with extra registers,I
follow these steps:
1) clang -emit-llvm main.ll main.c
2) llc -march=arm -o main.s main.bc
In this case it doesn't use the registers which I added to the
architecture. Do you have any ideas?
As far as I know, the generated ll code doesn't depend on the target
(right?), but I see this line in the ll code : target triple =
"x86_64-unknown-linux-gnu"
Could it be the problem?
I really appreciate if anybody can help.
Best Regards,
A. Yazdanbakhsh
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PhD. Student
School of Electrical and Computer Engineering
University of Wisconsin-Madison
E-mail: yazdanbakhsh at wisc.edu
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
On Sun, Dec 9, 2012 at 4:17 PM, Tim Northover <t.p.northover at gmail.com>wrote:
> On Sun, Dec 9, 2012 at 7:48 PM, Evan Cheng <evan.cheng at apple.com> wrote:
> > Sound like you are not enabling optimization. Try with -O3.
>
> Ah, of course! I'd forgotten about the extra allocas produced by clang.
>
> To expand a little, the spills you're seeing are (probably)
> specifically created by clang (it creates a shadow variable for each
> local with alloca). "llc" on its own can't get rid of these, so you'll
> either want to give clang "-O3" or run the LLVM bitcode through "opt"
> before "llc".
>
> Tim.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121210/36214c8a/attachment.html>
More information about the llvm-dev
mailing list