[PATCH] Enable FastISel on ARM for Linux and NaCl, not MCJIT

Eric Christopher echristo at gmail.com
Thu Jun 13 10:42:16 PDT 2013


I'd go ahead and file bugs for the cases you mention (I saw one earlier).

Otherwise seems fine.

-eric

On Wed, Jun 12, 2013 at 5:34 PM, JF Bastien <jfb at google.com> wrote:
> This is a resubmit of r182877, which was reverted because it broken MCJIT
> tests on ARM. The patch leaves MCJIT on ARM as it was before: only enabled
> for iOS. I've CC'ed people from the original review and revert.
>
> FastISel was only enabled for iOS ARM and Thumb2, this patch enables it for
> ARM (not Thumb2) on Linux and NaCl, but not MCJIT.
>
> Thumb2 support needs a bit more work, mainly around register class
> restrictions.
>
> The patch punts to SelectionDAG when doing TLS relocation on non-Darwin
> targets. I will fix this and other FastISel-to-SelectionDAG failures in a
> separate patch.
>
> The patch also forces FastISel to retain frame pointers: iOS always keeps
> them for backtracking (so emitted code won't change because of this), but
> Linux was getting much worse code that was incorrect when using big frames
> (such as test-suite's lencod). I'll also fix this in a later patch, it will
> probably require a peephole so that FastISel doesn't rematerialize frame
> pointers back-to-back.
>
> The test changes are straightforward, similar to:
>
> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130513/174279.html
> They also add a vararg test that got dropped in that change.
>
> I ran all of lnt test-suite on A15 hardware with --optimize-option=-O0 and
> all the tests pass. All the tests also pass on x86 make check-all. I also
> re-ran the check-all tests that failed on ARM, and they all seem to pass.



More information about the llvm-commits mailing list