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
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
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
陳韋任 (Wei-Ren Chen)
2012-Sep-21 08:22 UTC
[LLVMdev] How to use MCJIT by default for a target
> 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. > htmlI don't see this patch get committed. Do you want to ping it? ;) Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~chenwj
I think the response said that unconditionally using MCJIT everywhere was not considered viable. On the other hand, it looks like converting ARM to use MCJIT is something people will need persuading about. I'll try to find time to have a look at Andrew Kaylor's suggestion of adding a per-triple jitVariety variable to lit-cfg. -----Original Message----- From: 陳韋任 (Wei-Ren Chen) [mailto:chenwj at iis.sinica.edu.tw] Sent: 21 September 2012 09:23 To: David Tweed Cc: 'Alastair Murray'; llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] How to use MCJIT by default for a target> 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. > htmlI don't see this patch get committed. Do you want to ping it? ;) Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667 Homepage: http://people.cs.nctu.edu.tw/~chenwj