64-bit ARM (AArch64) Support Merged Into LLVM

Posted by Michael Larabel on January 31, 2013

GCC has had support for 64-bit ARM, a.k.a. AArch64, going back to last summer for using the open-source compiler with next-generation ARMv8 hardware. Being merged today is finally support for the LLVM compiler infrastructure with an experimental 64-bit ARM/AArch64 back-end target.

Adding fourty-five thousand lines of new code to the LLVM tree is a patch that adds support for ARM's 64-bit architecture to LLVM. This target is currently experimental and not built by default, but requires a compile-time switch for enabling. However, there's already talk amongst developers about enabling 64-bit ARM support by default. This work was merged into mainline LLVM this morning and will thus be found in the LLVM 3.3 release due out in a couple months time.

This initial AArch64 LLVM compiler support covers Assembly for all scalar instructions except for the late addition CRC instructions, code generation features needed for C++0x and C99, compilation support for the small memory model, absolute and position-independent code support, GNU-style TLS, and debugging support.

The 64-bit ARM compiler support, however, has yet to undergo any performance tuning for the greatest compiler performance. With there still being a few months to go until LLVM 3.3 is released, this will likely be achieved before the AArch64 LLVM support is in any released version.

Another limitation is that there isn't any NEON support for the AArch64 experimental target because the developer says there was "an outbreak of batshit insanisty in [ARM's] legal department."

The initial AArch64/ARMv8 instruction set support for LLVM can be found by cloning the LLVM SVN/Git repository where this big patch landed today.

LLVM 3.3 should be a fantastic release since aside from the 64-bit ARM support will also be the AMD Radeon GPU back-end, likely the enabling by default of the new loop vectorizer, and many other features for this open-source compiler infrastructure.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. GCC 4.8.0 vs. LLVM Clang 3.3 Compiler Performance
  2. Intel Linux OpenGL Driver Leading Over Apple OS X
  3. The Cost Of Ubuntu Disk Encryption
  4. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
Latest Linux News
  1. A New X.Org-Free Wayland LiveCD Released
  2. Unity 8, Mir Made Progress This Week On Features
  3. LLVM Clang 3.3 RC2 Is Ready For Testing
  4. AMD RadeonSI Gallium3D Begins Simple CL Demos
  5. Intel Shows Off GNOME3-Based Tizen Shell
  6. Linux Desktop Security Could Be A Whole Lot Better
  7. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  8. New NVIDIA Linux Driver Supports The GeForce GTX 780
  9. Chrome 28 To Offer More Speed Improvements
  10. Digia Announces "Boot To Qt" Project
  11. X.Org Libraries Hit By Round Of Security Issues
Latest Forum Talk
  1. A New X.Org-Free Wayland LiveCD Released
  2. Jolla Announces Their First Phone
  3. Steam: No used games...
  4. AMD RadeonSI Gallium3D Begins Simple CL Demos
  5. KDE 4.11 Will Be The Last Major KDE4 Workspaces...
  6. Intel Shows Off GNOME3-Based Tizen Shell
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite