SPRUIG8K January 2018 – March 2025
The C7000 C/C++ compiler uses a variety of optimization techniques to improve the execution speed of your C/C++ programs and to reduce their size. The following are some of the optimizations performed by the compiler:
| Optimization | See |
|---|---|
| Cost-based register allocation | Section 4.14.1 |
| Alias disambiguation | Section 4.14.2 |
| Branch optimizations and control-flow simplification | Section 4.14.3 |
Data flow optimizations
|
Section 4.14.4 |
| Expression simplification | Section 4.14.5 |
| Inline expansion of functions | Section 4.14.6 |
| Function symbol aliasing | Section 4.14.7 |
| Induction variables and strength reduction | Section 4.14.8 |
| Loop-invariant code motion | Section 4.14.9 |
| Loop rotation | Section 4.14.10 |
| Loop collapsing and loop coalescing | Section 4.14.11 |
| Unroll-and-jam | Section 4.14.11 |
| Vectorization | Section 4.14.13 |
| Instruction scheduling | Section 4.14.14 |
| Register variables | Section 4.14.15 |
| Register tracking/targeting | Section 4.14.16 |
| Software pipelining | Section 4.14.17 |