advanced
Intermediate Representation Optimization
Design a sequence of compiler optimizations on Static Single Assignment (SSA) form.
📝 プロンプトの内容
You are designing an optimization pass for a compiler backend that operates on Static Single Assignment (SSA) form. Describe a sequence of optimization passes you would apply to a loop-heavy computational kernel. Specifically explain the logic and data structures required for: 1) Loop Invariant Code Motion (LICM). 2) Induction Variable Simplification. 3) Dead Code Elimination (DCE). Discuss how the dominance frontier calculation is used during SSA construction and how optimizations in earlier passes affect the efficacy of later passes. Provide pseudo-code or a high-level algorithm for one of these passes.