Translation Validation for LLVM's AArch64 Backend
summary
arm-tv is a translation validator that lifts AArch64 assembly to LLVM MIR, extends Alive2 to handle mixed pointer/integer code and adds a flat memory model and cross-model refinement checks, enforces numerous ABI rules, and uses partial evaluation over ARM’s machine‑readable spec to generate lifter code. The tool runs LLVM’s optimizer on the lifted IR and then checks refinement, finds and helps fix 45 bugs in the AArch64 backend, and flags ABI violations that caused real security issues.
AI-written summary · about
chapters (8)
- 0:00Compiler backend correctness
- 1:06LLVM AArch64 backend bug
- 3:16Translation validation
- 4:21ARM TV architecture
- 6:11Automating assembly lifter
- 8:00ABI compliance verification
- 9:27Memory model differences
- 11:11Conclusion
related talks
59mCompiler-assisted Translation Validation
53mFrom Within: Compiler Testing and Validation via Compilers
22mReconciling High-level Optimizations and Low-level Code in LLVM
24mRISC V LLVM: Towards A Production-Ready LLVM-Based Toolchain
19mImprovement and enhancement of LLVM for HPC
53mLLVM
24mGenerating BPF Verifier Friendly Code with Clang
49mLLVMLinux: The Linux Kernel with Dragon Wings
