ANSI C Front-end
|
- LCC - EDG C front-ends and other languages can be supported on request
|
Currently available targets
|
- ARM / Linux (provided as example) - X86 / Linux (provided as example)
|
Documentation
|
- Framework architecture overview documentation - Framework utilities guide - Analyses, transformations, and optimizations writing guide - Code generator user's guide - Source code reference documentation - Installation guide
|
Debug information support
|
- DWARF2 & 3 Other formats can be supported on request
|
Optimizations
|
- Constant Folding - Basic Block Ordering - Dead Code Elimination - Local / Global Forward Substitution - Strength Reduction - Unreachable Code Elimination - Dead Object Elimination - Tail Merging - Inliner - Instruction Scheduler - Variable Renaming - Loop Invariant Code Motion - Loop Inversion - Local / Global Copy Propagation - Local / Global Common Subexpression Elimination - Code Straightening - Jump Optimizations - If Simplifications - Induction Variable Strength Reduction - Induction Variable Elimination - Local / Global Register Allocation (Allocation by graph coloring, web building and register coalescing)
|
Analyses
|
- Alias Analysis - Induction Variables Analysis - Definition-use, use-definition chains (both at high level and instruction level intermediate representation) - Control Flow Analysis (loops, dominators, post dominators, CFG is maintained online) - Data Flow Analysis (generic iterative data flow analyzer, and reaching definitions, liveness, available expressions, copy assignments analyses, all available at high level IR and instruction level if applicable)
|
Transformations
|
- IR Lowering Transformations (expression to function calls, member, array index lowering ) - Data Dependence Analysis
|
Quality Features
|
- Defensive Programming - Design by Contract - Automatically Generated Reference Documentation - Modular Architecture by use of Object Oriented Programming
|
Utilities
|
- IR dumping - Flow graph dumping - Debug/trace dumping - Macros for Design by Contract
|