On Sat, Apr 2, 2011 at 12:04 PM, Xerxes Ranby
<xerxes(a)zafena.se> wrote:
> On 2011-04-02 00:20, Michael Hope wrote:
>>
>> On Sat, Apr 2, 2011 at 1:50 AM,<omalleys(a)msu.edu> wrote:
>>>
>>> Did anyone ever get llvm/clang working?
>>>
>>> It -says- it is fast, good optimization, faster binaries, aimed at
>>> generating better errors, and has good tools for debugging. :) the
>>> darwin-arm (and x86 ports are production quality.
>>> There isn't support for EABI or< armv6 in the ARM-backend yet.
>>
>> I'm having a bit of a look at this for Linaro at the moment. LLVM is
>> quite respectable, and generates code that is slower than GCC but
>> generally in the same ballpark. Of the three benchmarks I've tried,
>> two took 8 % longer to run on an A9 and pybench took more like 40 %
>> longer to run. pybench is sensitive to having a good inner loop
>> though.
>>
>> -- Michael
>> _______________________________________________
>> arm mailing list
>> arm(a)lists.fedoraproject.org
>>
https://admin.fedoraproject.org/mailman/listinfo/arm
>
> Hi Michael!
>
> For what I know, LLVM defaults to ARMv4t code generation unless it gets told
> that it are allowed to use newer code generation.
>
> This llvm bug tracked how llvm and clang implemented X86 cpu feature
> autodetection code to make clang generate the best code available for any
> given host when using -march=native.
>
http://www.llvm.org/bugs/show_bug.cgi?id=5389
>
> I have added an initial cpu features auto-detection code for ARM to that
> bug-report for the LLVM part.
>
> Do you get better performance on your A9 tests when running clang with
> clang -mcpu=generic -mattr=+neon,-thumb2,+v6,+vfp2
I've only done a first pass, but I'm fairly sure I used clang
-mcpu=cortex-a9 -mfpu=neon. I don't think clang supports ARMv4T at
all. I'm working on automating the benchmarks at the moment and I'll
add llvm into that. Better than some throw-away, unreproducable
results :)
According to what I understood from their web docs (which may or may
not be accurate..) and was listed under "known issues" I think for the
"backend" for the 2.8 release:
-armv4 doesn't have thumb support yet.
-EABI is unsupported for all processors.
I was unclear whether that was just the llvm/clang toolchain or it
also included the llvm-gccX toolchain.
LLVM 2.9 is scheduled to be released today (April 4th). 2.8 is still
listed as the current version on their website, so there might be a
delay or it may not be updated yet.