LLVM on ARM A15

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

LLVM on ARM A15

Renato Golin-2
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


_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: LLVM on ARM A15

Nadav Rotem
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 <[hidden email]> 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



_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Reply | Threaded
Open this post in threaded view
|

Re: LLVM on ARM A15

Renato Golin-2
On 4 January 2013 23:50, Nadav Rotem <[hidden email]> 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

_______________________________________________
LLVM Developers mailing list
[hidden email]         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev