Architecture & Platform Information for Compiler Writers¶
Note
This document is a work-in-progress. Additions and clarifications are welcome.
Hardware¶
AArch64 & ARM¶
- ARMv8-A Architecture Reference Manual This document covers both AArch64 and ARM instructions
- ARMv7-A Architecture Reference Manual This has some useful info on what is supported by older architecture versions.
- ARMv7-M Architecture Reference Manual This covers the Thumb2-only microcontrollers
- ARMv6-M Architecture Reference Manual This covers the Thumb1-only microcontrollers
- ARM C Language Extensions
- ARM NEON Intrinsics Reference
- AArch32 ABI Addenda and Errata
- Cortex-A57 Software Optimization Guide
- Run-time ABI for the ARM Architecture This documents the __aeabi_* helper functions.
PowerPC¶
IBM - Official manuals and docs¶
- Power Instruction Set Architecture, Version 3.0B
- POWER9 Processor User’s Manual
- Power Instruction Set Architecture, Version 2.07B
- POWER8 Processor User’s Manual
- Power Instruction Set Architecture, Versions 2.03 through 2.06 (Internet Archive)
- IBM AIX 7.2 POWER Assembly Reference
- IBM AIX/5L for POWER Assembly Reference
AMDGPU¶
Refer to User Guide for AMDGPU Backend for additional documentation.
ABI¶
- System V Application Binary Interface
- Itanium C++ ABI (This is used for all non-Windows targets.)
Linux¶
- Linux extensions to gabi
- 64-Bit ELF V2 ABI Specification: Power Architecture
- OpenPOWER ELFv2 Errata: ELFv2 ABI Version 1.4
- PowerPC 64-bit ELF ABI Supplement
- Procedure Call Standard for the AArch64 Architecture
- Procedure Call Standard for the ARM Architecture
- ELF for the ARM Architecture
- ELF for the ARM 64-bit Architecture (AArch64)
- System z ELF ABI Supplement
NVPTX¶
- CUDA Documentation includes the PTX ISA and Driver API documentation
Miscellaneous Resources¶
- Executable File Format library
- GCC prefetch project page has a good survey of the prefetching capabilities of a variety of modern processors.