Hi, I didn't do any serious benchmarking but so far I never found a case where LLVM does better than IAR on CortexM0, but I saw a lot of cases where IAR output is better than LLVM... That said I did not use -Os or -Oz, I just used -O3. A recurrent situation is that LLVM push/pop one or two extra registers compared to IAR, I guess it does so in order to comply with a standard ABI or something but in the world of deeply embedded system, we don't care of such things 99.99% of the time... If you want to see some good code output, take a look at IAR, there is a free version limited in code size online. Cheers, Sebastien -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130226/b305bce8/attachment.html>
Cortex-M0 is a Thumb1 only device. There hasn't been any concerted effort to tune LLVM's Thumb1 output in quite a long time. Even back then (2008 or so), the effort was mainly to get it to work acceptably, with the real performance tuning work being done for Thumb2. I'm not surprised that an embedded market focussed compiler like IAR is better tuned for a chip like that. -Jim On Feb 26, 2013, at 2:11 PM, matic at nimp.co.uk wrote:> Hi, > > > I didn't do any serious benchmarking but so far I never found a case where LLVM does better than IAR on CortexM0, but I saw a lot of cases where IAR output is better than LLVM... > > That said I did not use -Os or -Oz, I just used -O3. > > A recurrent situation is that LLVM push/pop one or two extra registers compared to IAR, I guess it does so in order to comply with a standard ABI or something but in the world of deeply embedded system, we don't care of such things 99.99% of the time... > > If you want to see some good code output, take a look at IAR, there is a free version limited in code size online. > > Cheers, > > Sebastien > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130226/6bf91750/attachment.html>
What about benchmarks on other Arm devices? On 02/26/2013 02:52 PM, Jim Grosbach wrote:> Cortex-M0 is a Thumb1 only device. There hasn't been any concerted > effort to tune LLVM's Thumb1 output in quite a long time. Even back then > (2008 or so), the effort was mainly to get it to work acceptably, with > the real performance tuning work being done for Thumb2. I'm not > surprised that an embedded market focussed compiler like IAR is better > tuned for a chip like that. > > -Jim > > On Feb 26, 2013, at 2:11 PM, matic at nimp.co.uk <mailto:matic at nimp.co.uk> > wrote: > >> Hi, >> >> >> I didn't do any serious benchmarking but so far I never found a case >> where LLVM does better than IAR on CortexM0, but I saw a lot of cases >> where IAR output is better than LLVM... >> >> That said I did not use -Os or -Oz, I just used -O3. >> >> A recurrent situation is that LLVM push/pop one or two extra registers >> compared to IAR, I guess it does so in order to comply with a standard >> ABI or something but in the world of deeply embedded system, we don't >> care of such things 99.99% of the time... >> >> If you want to see some good code output, take a look at IAR, there is >> a free version limited in code size online. >> >> Cheers, >> >> Sebastien >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu >> <mailto:LLVMdev at cs.uiuc.edu>http://llvm.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 >