Expand description
Register-allocation data types and target-independent allocation helpers.
Structs§
- Allocation
- Register assignment returned by
allocate_linear_scan. - Block
Allocation Facts - Register-allocation facts for one normalized target-MIR basic block.
- Copy
Resolution - Dependency-ordered realization of one parallel assignment.
- Copy
Resolution Error - Malformed copy rows or an inconsistent resolver state.
- Copy
Resolution Work - Work counters retained for allocator diagnostics and regression tests.
- Function
Allocation Facts - Target-independent input boundary for register-allocation analyses.
- Instruction
Allocation Facts - Register-allocation facts for one target-owned machine instruction.
- Instruction
Constraints - Target constraints attached to one instruction after legalization.
- Live
Interval - Sparse per-block live interval for one target-owned virtual register.
- Live
Interval Error - Failure while constructing strict-SSA live intervals.
- Live
Intervals - Exact SSA liveness reconstructed from allocation facts.
- Live
Range - One inclusive live range in a linearized machine function.
- Live
Segment - One half-open live segment within a normalized basic block.
- Next
UseAnalysis - Next
UseDistance Iter - Next
UseDistance Keys - Next
UseDistances - Next-use distances at target-MIR block boundaries.
- Parallel
Copy - One simultaneous assignment row.
- PhiAllocation
Facts - Register-allocation facts for one target-MIR phi node.
- PhiSource
- One source of a target-MIR phi node, identified by normalized predecessor block index rather than a backend-specific block identifier.
- Register
Set - Compact set for targets with at most 64 physical registers per class.
- Stack
Slot Coloring - Deterministic stack-slot assignment for target-owned spill homes.
Enums§
- Allocation
Facts Error - Structural error in backend-provided register-allocation facts.
- Copy
Destination - Writable physical location in a parallel assignment.
- Copy
Operation - One sequential operation implementing a parallel assignment.
- Copy
Source - Readable physical location or constant in a parallel assignment.
- Linear
Scan Error - Failure from target-independent linear-scan allocation.
- RegConstraint
- Constraint on one machine-instruction operand.
- Stack
Color Error - Failure while assigning target-owned spill homes to reusable frame slots.
- Value
Location - Physical location used while lowering SSA edge transfers.
Traits§
- Machine
Register - A physical register that can be stored in a compact register set.
Functions§
- allocate_
linear_ scan - Allocate non-spilling live ranges using a deterministic linear scan.
- analyze_
live_ intervals - Build exact block-sparse live intervals for a strict-SSA target program.
- analyze_
next_ uses - Compute liveness and global next-use distances solely from allocator facts.
- color_
stack_ slots - Color a complete target spill batch using conservative linear envelopes.
- resolve_
parallel_ copies - Schedule copies without clobbering any still-needed source.