Hi all,
The AArch64->ARM64 merge is progressing at a rapid pace. Below I have taken
the requirements drawn up in Edinburgh (which were sent to the list for comment)
and annotated them with the current progress.
The TL;DR is that we still have a couple of issues outstanding but we're
well on track for removing AArch64 (and re-bikeshedding ARM64) for the 3.5
release!
Times are incredibly approximate and are in man-days/weeks.
· Requirement: No regressions
o Correctness
§ [2w] Regression tests
· All AArch64 Clang regression tests in Driver/, Sema/, Basic/ and
Preprocessor/ ported. Only those in CodeGen{,CXX}/ left.
· Most LLVM regression tests ported. A couple of more intricate tests
remain, along with the MC tests which may be a headache to dig through.
§ [?] QuIC internal tests
· Nightly runs show 11 test failures. Some compile-time (front-end
issues), link-time and runtime (miscomparison) failures too.
§ [2d] ARM internal tests
· All our test suites apart from Emperor and Perennial are passing.
· Emperor mentioned below, Perennial runs ongoing.
§ [0d] Apple internal tests
· Tim says we're "looking reasonable" here :)
· This only blocks a "go/no-go", and there are no actual
actions here at the moment (according to Tim)
§ [DONE] LLVM test suite
§ [1d] MC Hammer
· One issue with aliasing remains. Patch being sent out to the list
Friday.
§ [3d] Emperor
· One issue still outstanding. Patch being sent to the list very
shortly.
· This is a random test suite so has the possibility to uncover more
problems. Our acceptance criterion is 3 days runtime without finding any bugs.
o Performance
§ No precise fixed performance baseline
§ [DONE] Investigate significant performance regressions - justify fix/not fix.
· No performance blockers reported.
· Requirement: Feature parity
o [1-2w] Big endian
§ This comes in two parts. Big endian support with no NEON is almost completely
ported - the last patches are being sent to the list on Friday.
§ NEON support for Big Endian hasn't been committed to AArch64. There's
a whole kettle of fish there, that probably have about 1-2 weeks of effort left
to fix. But this shouldn't be a merge completion blocker.
o [2d] Support for no fpu/no neon/ no crc
§ Support has been ported, but some regression tests from AArch64 haven't
been ported over to ARM64 yet. There is at least one ISel crash that I can see,
so there's still at least some effort left here.
o [DONE] A53 scheduler
§ The A53 scheduler has been ported across and ARM64 now has as much of a
schedule as AArch64 does.
o [DONE-ish] Inline assembly
§ All work done - One patch has seen contention from Eric and Jim so may have
to be reverted. No big deal if it is though.
o [DONE] Predefines
§ All predefines and driver flags should be correct.
o [?] Conditionalise cyclone/Darwin
§ Not done yet, but noone's raised any issues about it so perhaps there
isn't much to do!
o [?] ADRP CSE
§ This optimization, being worked on by Jiangning, has been half ported to
ARM64. But it hasn't been committed to AArch64 yet, so it can't be
considered a merge blocker.
o [2d] fastcc & guaranteed tail opt
o [1d?] Post-increment NEON ld/st
§ Kevin is now working on this
Cheers,
James
-- IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered
in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
Registered in England & Wales, Company No: 2548782
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20140425/ce15f4fb/attachment.html>