[llvm-commits] [PATCH v2] review for fix of profiling test failures on ARM

David Tweed david.tweed at arm.com
Fri Sep 21 08:18:19 PDT 2012


Discussion about making the default JIT lli uses for the general user depend
on target triple suggested at the very least it requires further clean up
and analysis, so while that avenue will be pursued for its own sake, here's
a patch that (following David Kaylor's suggestion):

As part of the push to make the ARM buildbots baseline be green, this adds a
"%defaultjit" lit macro that (currently) becomes "-use-mcjit=true" on ARM,
"-use-mcjit=false" elsewhere. (This is to be explicit; defining it to just
be "" for platforms using the old jit would give something that, if lli gets
triple-based jit defaulting, would undergo a behaviour change for the case
of defaultjit not using MCJIT while no behaviour change the other way
around. This kind of asymmetry is a debugging nightmare.) Iprovides an
abstraction that tests which need to use the jit, but aren't explicitly
testing a particular kind of it, can specify, so that what they want to test
gets covered as well as possible with the currently "most robust" jit
engine. The patch only uses it on the 3 profiling tests that were failing,
but I'll look to see if there are other tests it would be appropriate.

Tested on ARM and x86-64.

Please review with a view to committing.

Many thanks,
David Tweed

-----Original Message-----
From: NAKAMURA Takumi [mailto:geek4civic at gmail.com] 
Sent: 13 September 2012 10:39
To: David Tweed
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [PATCH] review for fix of profiling test
failures on ARM

2012/9/13 David Tweed <david.tweed at arm.com>:
> Fair enough: I clearly didn't research the MCJIT status deeply enough. Out
> of curiousity, do the profiling tests pass on those platforms as it
stands?
> (I can't find any of those platforms listed on the buildbot page.)

They have been suppressed on Win32-based builders.
I can reproduce crash manually.
http://llvm.org/bugs/show_bug.cgi?id=13830

> | What would happen if -use-mcjit were set by default for arm-elf?
>
> That's a good question, one I don't know the complete answer to yet. In
> general the old JIT doesn't compile runnable code on ARM and the MCJIT
does,
> but I don't know if there are any cases where the reverse is true. My
> current focus is looking at the regression test failures as reported by
the
> buildbots and seeing how many can be "properly" resolved so they pass and
we
> get closer to a more useful default green build on ARM. I'm happy to turn
on
> mcjit for ARM Elf in some regression tests that are really testing the
> profiling instruction insertion, but I'd need to do some more
comprehensive
> testing before I was happy turning it on for users by default.

I think test/ExecutionEngine should cover then.

> Supposing I was to figure out some magic way to add the -use-mcjit option
> for those tests only on ARM-Linux, would that be a valid way to fix the
> issue in the main tree?

I don't think so. It would be better when -use-mcjit could be turned
on for certain targets.

...Takumi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: defaultJit.diff
Type: application/octet-stream
Size: 2590 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120921/6a7cd169/attachment.obj>


More information about the llvm-commits mailing list