Hi folks, I've been playing with LLVM on a Chromebook (Ubuntu) and it seems to work quite well. Installing Ubuntu on the Chromebook was a breeze[1] and all tools/libs/headers required to check-out and build LLVM were accessible via apt-get. I had two problems to build it, but apart from those, it all ran smoother than I'd expected. I'll investigate the errors a bit deeper later on, in case they're not just me messing up. Anyone else trying the same thing out there? * First error: DataTypes.h The generated header tests for some macros regarding unsigned int 64-bits, doesn't find it and prints an error. Just commenting it out the #error line was enough, since it gets defined later on anyway. * Second error: PIC not available During CMake, SUPPORTS_FPIC_FLAG is set to false, leading to obvious linking problems of shared libraries. Just commenting out the whole if/else block and setting -fPIC anyway does the trick. I'll check later why the flag is "not supported". * Timings Whole compilation with -j2 took an hour (ARM back-end only), including check-all, which passed brilliantly, except for LoopVectorize tests. ;) I'm guessing this is due to it being disabled by Nadav and when we get the cost model right it'll go back to passing. Maybe we should mark them as supported only by platforms that implement the cost model? ******************** Testing Time: 521.68s ******************** Failing Tests (20): LLVM :: Transforms/LoopVectorize/12-12-11-if-conv.ll LLVM :: Transforms/LoopVectorize/2012-10-22-isconsec.ll LLVM :: Transforms/LoopVectorize/calloc.ll LLVM :: Transforms/LoopVectorize/cast-induction.ll LLVM :: Transforms/LoopVectorize/cpp-new-array.ll LLVM :: Transforms/LoopVectorize/flags.ll LLVM :: Transforms/LoopVectorize/gcc-examples.ll LLVM :: Transforms/LoopVectorize/if-conversion.ll LLVM :: Transforms/LoopVectorize/increment.ll LLVM :: Transforms/LoopVectorize/induction_plus.ll LLVM :: Transforms/LoopVectorize/intrinsic.ll LLVM :: Transforms/LoopVectorize/lcssa-crash.ll LLVM :: Transforms/LoopVectorize/no_int_induction.ll LLVM :: Transforms/LoopVectorize/non-const-n.ll LLVM :: Transforms/LoopVectorize/read-only.ll LLVM :: Transforms/LoopVectorize/reduction.ll LLVM :: Transforms/LoopVectorize/runtime-check.ll LLVM :: Transforms/LoopVectorize/scalar-select.ll LLVM :: Transforms/LoopVectorize/start-non-zero.ll LLVM :: Transforms/LoopVectorize/write-only.ll Expected Passes : 9750 Expected Failures : 77 Unsupported Tests : 2930 Unexpected Failures: 20 cheers, --renato [1] http://chromeos-cr48.blogspot.co.uk/2012/10/arm-chrubuntu-1204-alpha-1-now.html -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130104/96a13df1/attachment.html>
Hi Renato, The tests below are target independent and should pass. Did you build the x86 backend ? I think that the problem is that opt uses the triple from the LL file to initialize the backends and the cost model, and if you don't have the x86 backend then the tests fail. I will fix the tests shortly. Thanks, Nadav On Jan 4, 2013, at 3:45 PM, Renato Golin <renato.golin at linaro.org> wrote:> Hi folks, > > I've been playing with LLVM on a Chromebook (Ubuntu) and it seems to work quite well. Installing Ubuntu on the Chromebook was a breeze[1] and all tools/libs/headers required to check-out and build LLVM were accessible via apt-get. > > I had two problems to build it, but apart from those, it all ran smoother than I'd expected. I'll investigate the errors a bit deeper later on, in case they're not just me messing up. Anyone else trying the same thing out there? > > * First error: DataTypes.h > > The generated header tests for some macros regarding unsigned int 64-bits, doesn't find it and prints an error. Just commenting it out the #error line was enough, since it gets defined later on anyway. > > * Second error: PIC not available > > During CMake, SUPPORTS_FPIC_FLAG is set to false, leading to obvious linking problems of shared libraries. Just commenting out the whole if/else block and setting -fPIC anyway does the trick. I'll check later why the flag is "not supported". > > * Timings > > Whole compilation with -j2 took an hour (ARM back-end only), including check-all, which passed brilliantly, except for LoopVectorize tests. ;) > > I'm guessing this is due to it being disabled by Nadav and when we get the cost model right it'll go back to passing. Maybe we should mark them as supported only by platforms that implement the cost model? > > ******************** > Testing Time: 521.68s > ******************** > Failing Tests (20): > LLVM :: Transforms/LoopVectorize/12-12-11-if-conv.ll > LLVM :: Transforms/LoopVectorize/2012-10-22-isconsec.ll > LLVM :: Transforms/LoopVectorize/calloc.ll > LLVM :: Transforms/LoopVectorize/cast-induction.ll > LLVM :: Transforms/LoopVectorize/cpp-new-array.ll > LLVM :: Transforms/LoopVectorize/flags.ll > LLVM :: Transforms/LoopVectorize/gcc-examples.ll > LLVM :: Transforms/LoopVectorize/if-conversion.ll > LLVM :: Transforms/LoopVectorize/increment.ll > LLVM :: Transforms/LoopVectorize/induction_plus.ll > LLVM :: Transforms/LoopVectorize/intrinsic.ll > LLVM :: Transforms/LoopVectorize/lcssa-crash.ll > LLVM :: Transforms/LoopVectorize/no_int_induction.ll > LLVM :: Transforms/LoopVectorize/non-const-n.ll > LLVM :: Transforms/LoopVectorize/read-only.ll > LLVM :: Transforms/LoopVectorize/reduction.ll > LLVM :: Transforms/LoopVectorize/runtime-check.ll > LLVM :: Transforms/LoopVectorize/scalar-select.ll > LLVM :: Transforms/LoopVectorize/start-non-zero.ll > LLVM :: Transforms/LoopVectorize/write-only.ll > > Expected Passes : 9750 > Expected Failures : 77 > Unsupported Tests : 2930 > Unexpected Failures: 20 > > cheers, > --renato > > [1] http://chromeos-cr48.blogspot.co.uk/2012/10/arm-chrubuntu-1204-alpha-1-now.html-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130104/7a6a4f4f/attachment.html>
On 4 January 2013 23:50, Nadav Rotem <nrotem at apple.com> wrote:> Did you build the x86 backend ? I think that the problem is that opt uses > the triple from the LL file to initialize the backends and the cost model, > and if you don't have the x86 backend then the tests fail. >I did not, that's a good point. I haven't looked at the error messages, to be honest, it's a bit late here and the Chromebook is already sleeping. ;)> I will fix the tests shortly. >Thanks! cheers, --renato -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130104/c1f46d62/attachment.html>
Possibly Parallel Threads
- [LLVMdev] LLVM on ARM A15
- Separate LoopVectorize LLVM pass
- [LLVMdev] E = L->begin() in LoopVectorize
- [LLVMdev] E = L->begin() in LoopVectorize
- [InstCombine] rL292492 affected LoopVectorizer and caused 17.30%/11.37% perf regressions on Cortex-A53/Cortex-A15 LNT machines