Expand description
MIR analysis passes.
This module contains dataflow analysis passes for MIR, including:
- Liveness analysis for tracking value lifetimes
- Phi elimination for converting SSA to CSSA
- Loop analysis for detecting and analyzing natural loops
Structs§
- Affine
Expr - An affine expression in one loop.
- Affine
Term - One affine induction-variable term.
- Block
Copies - Copies to insert at the end of a block (before the terminator).
- Call
Graph Info - Module-level internal-call graph facts.
- CfgInfo
- Control-flow facts for one MIR function.
- Dominator
Tree - Immediate-dominator tree for one MIR function.
- Induction
Variable - An induction variable in a loop.
- Liveness
- Liveness analysis results for a function.
- Liveness
Info - Per-instruction liveness information.
- Loop
- A natural loop in the control flow graph.
- Loop
Analyzer - Loop analyzer that detects and analyzes loops in MIR functions.
- Loop
Info - Result of loop analysis for a function.
- Parallel
Copy - A parallel copy operation: copy from source to destination.
- PhiElimination
Result - Result of phi elimination.
- PhiEliminator
- Phi elimination query.
- Scalar
Evolution - Affine expressions recognized for one loop.
- Validation
Error - One validation finding.
- Validator
- MIR validation query.
- Validator
Analysis - Validator as an
AnalysisPass. The result is the (possibly empty) list of validation errors.
Enums§
- Copy
Dest - Destination for a parallel copy - either a regular value or a temporary.
- Copy
Source - Source for a parallel copy - either a regular value or a temporary.
Functions§
- eliminate_
phis - Eliminates phi nodes by inserting parallel copies at predecessor block exits.
- validate_
function - Validates a single function. Returns the empty vec on success.
- validate_
module - Validates every function in a module.
Type Aliases§
- LiveSet
- A dense bitset for tracking live values.