Useful Links
Computer Science
Programming
LLVM Compiler Backend
1. Introduction to Compiler Backends and LLVM
2. LLVM Intermediate Representation
3. Target Description Infrastructure
4. Instruction Selection
5. Register Allocation
6. Instruction Scheduling
7. Code Emission and Finalization
8. Advanced Backend Features
9. Backend Development
Code Emission and Finalization
MachineInstr Representation
Instruction Structure
Operand Encoding
Instruction Properties
Late Optimizations
Peephole Optimizations
Local Transformations
Redundancy Elimination
Code Motion
Instruction Sinking
Instruction Hoisting
Stack Frame Management
Frame Layout
Local Variable Allocation
Spill Slot Assignment
Alignment Requirements
Prologue Generation
Stack Pointer Adjustment
Frame Pointer Setup
Callee-Saved Register Preservation
Epilogue Generation
Register Restoration
Stack Cleanup
Return Sequence
Machine Code Layer
MCInst Representation
Abstract Instructions
Operand Encoding
MCStreamer Framework
Assembly Output
Object File Output
Section Management
Symbol Management
Object File Formats
ELF Format
Section Structure
Symbol Tables
Relocation Entries
Mach-O Format
Load Commands
Section Layout
COFF Format
Section Headers
Symbol Tables
Assembler Integration
Assembly Parsing
Instruction Encoding
Disassembler Integration
Instruction Decoding
Operand Formatting
Previous
6. Instruction Scheduling
Go to top
Next
8. Advanced Backend Features