LLVM Compiler Backend

  1. LLVM Intermediate Representation
    1. Core IR Concepts
      1. Static Single Assignment Form
        1. SSA Properties
          1. Phi Nodes
            1. Dominance Relations
            2. Infinite Virtual Registers
              1. Control Flow Graphs
                1. Basic Blocks
                2. IR Structure Hierarchy
                  1. Module Level
                    1. Global Variables
                      1. Function Declarations
                        1. Function Definitions
                          1. Metadata Attachments
                          2. Function Level
                            1. Function Signatures
                              1. Function Attributes
                                1. Parameter Lists
                                  1. Return Types
                                  2. Basic Block Level
                                    1. Block Labels
                                      1. Instruction Sequences
                                        1. Terminator Instructions
                                        2. Instruction Level
                                          1. Instruction Format
                                            1. Operand Types
                                              1. Result Values
                                            2. LLVM Type System
                                              1. Primitive Types
                                                1. Integer Types
                                                  1. Floating-Point Types
                                                    1. Void Type
                                                    2. Derived Types
                                                      1. Pointer Types
                                                        1. Array Types
                                                          1. Structure Types
                                                            1. Vector Types
                                                              1. Function Types
                                                              2. Type Properties
                                                                1. Type Sizes
                                                                  1. Type Alignment
                                                                    1. Type Equivalence
                                                                  2. Instruction Categories
                                                                    1. Terminator Instructions
                                                                      1. ret Instruction
                                                                        1. br Instruction
                                                                          1. switch Instruction
                                                                            1. indirectbr Instruction
                                                                              1. invoke Instruction
                                                                                1. unreachable Instruction
                                                                                2. Binary Operations
                                                                                  1. Arithmetic Instructions
                                                                                    1. Bitwise Instructions
                                                                                      1. Comparison Instructions
                                                                                      2. Memory Operations
                                                                                        1. load Instruction
                                                                                          1. store Instruction
                                                                                            1. getelementptr Instruction
                                                                                              1. Atomic Operations
                                                                                              2. Conversion Operations
                                                                                                1. Integer Conversions
                                                                                                  1. Floating-Point Conversions
                                                                                                    1. Pointer Conversions
                                                                                                    2. Control Flow Operations
                                                                                                      1. phi Instruction
                                                                                                        1. select Instruction
                                                                                                          1. call Instruction
                                                                                                        2. Metadata System
                                                                                                          1. Metadata Purpose
                                                                                                            1. Debug Information
                                                                                                              1. Optimization Hints
                                                                                                                1. Type-Based Alias Analysis