[PATCHSET][ARM64] Implement big endian NEON
James Molloy
james.molloy at arm.com
Wed Apr 30 04:05:56 PDT 2014
Hi Tim,
The attached patches implement NEON for big endian ARM64. Covered are:
1. Creation of a targetlowering hook to control if bitcasts can be
elided, and wiring of this up for ARM64.
2. Fixing of big endian argument passing (non-NEON specific).
3. [trivial] disconnection of bitcast combine in ISelLowering
4. [mechanical] Predication of LDR/STR (on vectors) to be
little-endian-only.
5. The Big One T. Implementation of bitcast for ARM64BE. A good
explanation is available in the patch commit log.
. This is currently missing testcases. I have been using runtime
tests, not codegen tests during my development because those REVs made my
brain melt and I didn't trust the compiler output or my own head to sanitize
the compiler output. Now that I'm happy that the compiler does the right
thing, I will go and create codegen regression tests. I think it's
worthwhile getting the review process started before that though, as they'll
be mechanical to create with no value to review.
. The tblgen file ended up with lots of very long lines. I decided
it might be best to keep these long so as to aid the reviewer - line breaks
would make diff output a lot harder to see what has been changed/modified. I
will then go and reformat this patch to remove the long lines (or I can
change it now, if the reviewer desires).
. I can stick this in Phab if you like.
6. Implementation of call/ret lowering and formal arguments lowering.
. This is also currently missing testcases - testcases will be
created before commit.
The only thing missing at the moment except the testcases is fast-isel
support. That'll come in a later commit.
Cheers,
James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-ARM64-Implement-the-lane-twiddling-logic-at-AAPCS-bo.patch
Type: application/octet-stream
Size: 5608 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-a-new-target-lowering-hook-canBitCastBeElided.patch
Type: application/octet-stream
Size: 5308 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-ARM64-Make-big-endian-argument-passing-work-correctl.patch
Type: application/octet-stream
Size: 11261 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-ARM64-Disconnect-some-suspect-transformations-in-ISe.patch
Type: application/octet-stream
Size: 1004 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-ARM64-Predicate-VLDR-VSTR-for-vectors-as-little-endi.patch
Type: application/octet-stream
Size: 18790 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-ARM64-Implement-the-crazy-bitcast-handling-for-big-e.patch
Type: application/octet-stream
Size: 19699 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140430/dad6f620/attachment-0005.obj>
More information about the llvm-commits
mailing list