High-level Optimizations (Cont.)
Many powerful transformations no longer possible at logic optimization
- Comparator sharing for relational operations
- Function transformations
- Resource sharing/allocation; e.g., ALU to perform numerous operations
- Bit-pruning: providing only bits that are needed
- Constant folding: replacing operators whose arguments are constants with constants
- Constant propagation
- Expression sharing
- Expression migration: moving repeated expressions out of loops, if clauses, and case statement clauses where possible
- Dead code removal
Notes: