SSA-based Compiler Design
The manner in which programs are represented in compilers has a large influence on the efficiency and effectiveness of the compiler. The Static Single Assignment (SSA) form is widely used in modern compilers, even at the code generation level, as it allows for simple yet efficient optimizations and analyses. This book offers the first comprehensive reference on SSA-based compilers. Special emphasis is put on the comparison of SSA-based techniques to their non-SSA counterparts.
Provides overview of basics about SSA, including definitions and different varieties of SSA, as well as properties related to dominance and sparsenessIncludes coverage of extensions that are necessary when handling memory optimizations, such as aliasing, predication, and concurrencyPresents classical compiler analysis/optimizations using the SSA form, demonstrating advantages and disadvantages of using SSA to optimize a compilerIncludes redundant expressions analysis and elimination, dead-code elimination, type-state analysis, alias analysis, and bit-width analysisCovers constrained optimizations in order to clarify the impact of using SSA for code generation optimizations, hardware compilation, just in time compilation, or automatic parallelization