UsefulLinks
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
3.
Target Description Infrastructure
3.1.
TargetMachine Architecture
3.1.1.
Target Configuration
3.1.2.
Triple Specification
3.1.2.1.
Architecture Component
3.1.2.2.
Vendor Component
3.1.2.3.
Operating System Component
3.1.2.4.
Environment Component
3.1.3.
Target Options
3.1.4.
Feature Management
3.2.
TableGen Description Language
3.2.1.
TableGen Syntax
3.2.2.
File Structure
3.2.3.
Record Definitions
3.2.4.
Class Hierarchies
3.2.5.
Code Generation Backend
3.3.
Target Definition Components
3.3.1.
Processor Definitions
3.3.1.1.
CPU Models
3.3.1.2.
Subtarget Features
3.3.1.3.
Scheduling Models
3.3.2.
Register File Description
3.3.2.1.
Register Classes
3.3.2.2.
Register Hierarchies
3.3.2.3.
Register Aliases
3.3.3.
Instruction Set Description
3.3.3.1.
Instruction Formats
3.3.3.2.
Encoding Specifications
3.3.3.3.
Operand Definitions
3.3.4.
Calling Convention Description
3.3.4.1.
Parameter Passing Rules
3.3.4.2.
Return Value Handling
3.3.4.3.
Stack Management
3.3.5.
Pattern Matching Rules
3.3.5.1.
DAG Patterns
3.3.5.2.
Instruction Selection Patterns
3.4.
Target Implementation Classes
3.4.1.
TargetLowering Class
3.4.1.1.
Operation Legalization
3.4.1.2.
Custom Lowering
3.4.1.3.
Type Legalization
3.4.2.
TargetInstrInfo Class
3.4.2.1.
Instruction Properties
3.4.2.2.
Scheduling Information
3.4.3.
TargetRegisterInfo Class
3.4.3.1.
Register Allocation Support
3.4.3.2.
Register Constraints
3.4.4.
TargetFrameLowering Class
3.4.4.1.
Stack Frame Layout
3.4.4.2.
Prologue Generation
3.4.4.3.
Epilogue Generation
3.4.5.
TargetSubtargetInfo Class
3.4.5.1.
Feature Management
3.4.5.2.
CPU Detection
Previous
2. LLVM Intermediate Representation
Go to top
Next
4. Instruction Selection