Back
Home
Our Services
Programming Tools Business Unit
Compilers
Optimizations in Our Compilers
Optimizations in Our Compilers
Standard optimizations and architecture specific optimizations are implemented in the compilers we
develop. The standard optimizations implemented in our compilers are:
- Local optimizations
- Constant propagation
- Copy propagation
- Constant folding
- Common sub expression elimination
- Algebraic transformation
- Use of algebraic identities
- Resolving aliases
- Switch jump table creation
- Useless definition elimination
- Global optimizations
- Resolving aliases
- Constant propagation
- Constant folding
- Common sub expression elimination
- Code sinking
- Code hoisting
- Code motion for else
- Dead variable elimination
- Dead code elimination
- Merging of IF statements
- Branch optimizations
- Automatic procedure inlining
- Tail merging
- Convert linear code to loop
- Conversion of if statement to switch
- Template optimization
- Loop optimizations
- Loop invariant code motion
- Loop variant code motion
- Induction variable elimination
- Loop unrolling
- Postcode Optimizations
- Register tracking
- Peep hole optimizations
- Instruction hoisting and sinking
- Tail-call optimization
- Optimizing jump-and-link instruction to branch-and-link instruction
- Template optimization
- Straight path optimization (Optimizing jumps to return instruction)
For DSP, the following architectural features are used effectively:
- Zero Overhead Loop
- Multiply And Accumulation Instruction Support
- Instruction Scheduling
- Instruction Level Parallelism
- Pipeline Hazard Optimization
- Conditional Instruction Support
- Bit Field Instruction Support
- Delay Slot Optimization
Back