[LLVMdev] How to use MCJIT by default for a target

Kaylor, Andrew andrew.kaylor at intel.com
Wed Sep 19 14:10:40 PDT 2012


Some time ago an extension to lit that would allow multiple embedded subtests in a file with different run lines was agreed upon.  This was intended to solve the duplication in the ExecutionEngine tests.  One run line would test JIT, one would test MCJIT.

I don't know if the lit extension was committed, but I know the tests haven't been updated to use it.

-Andy

-----Original Message-----
From: Amara Emerson [mailto:amara.emerson at gmail.com] 
Sent: Wednesday, September 19, 2012 2:07 PM
To: Kaylor, Andrew
Cc: David Tweed; Alastair Murray; llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] How to use MCJIT by default for a target

Anything to remove the current duplication in test code between ExecutionEngine & ExecutionEngine/MCJIT is a step forward. While that mess is tidied up, we may as well factor in a solution to allow setting default JITs. IMO target support for MCJIT would improve faster if at some point the transition was made completely. It's going to happen eventually, and the sooner for those targets with sufficient support the better, in terms of user testing and patches.

I think this would mean that the target default JIT options should end up living in lli rather than in the lit config files, overridable of course.

Amara

On 19 September 2012 18:55, Kaylor, Andrew <andrew.kaylor at intel.com> wrote:
> One possible way to solve the problem is to add an extra substitution argument to the lli invocation in the test files, then in the lit config files define that substitution to be "--use-mcjit" if the host OS architecture is ARM and empty otherwise.
>
> It's not a particularly elegant solution, but I think it would work.
>
> -Andy
>
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] 
> On Behalf Of David Tweed
> Sent: Wednesday, September 19, 2012 1:11 AM
> To: 'Alastair Murray'
> Cc: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] How to use MCJIT by default for a target
>
> Hi Andrew,
>
> On 18/09/12 11:21, David Tweed wrote:
>> in particular there are some regression tests of interesting things
>> -- such as profiling -- that fail purely because the default old JIT 
>> doesn't work.
>
> |I've actually got LLVM currently compiling within an ARM QEmu install 
> |to look at an assert within the ARM JIT code.  Profiling tests that I 
> |submitted a few weeks ago are failing on ARM build-bots (assert in 
> |lli), perhaps this is what you are referring to.
> |
> |If I can verify that the tests pass when using MCJIT is there any 
> |interest in fixing it?  Obviously if they still break with MCJIT 
> |there is something which definitely needs fixed.
>
> Yep, this is the issue. Running on an ARM pandaboard I can confirm that it's due to issues with the old JIT in general which are fixed in MCJIT, and nothing to do with the profiling code being tested, as discussed in this thread:
>
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120910/150406.
> html
>
> As you can see, I'm very interested in getting this fixed, but it's one of those situations where there's not really any nice mechanism in place for the obvious solution, which is to use MCJIT when needed without requiring the user (or for regression tests, tester) to do anything special.
>
> Any ideas anyone has would be great!
>
> Cheers,
> David
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at 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




More information about the llvm-dev mailing list