SPNU151W January 1998 – March 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
The ARM 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 3.13.1 |
Alias disambiguation | Section 3.13.2 |
Branch optimizations and control-flow simplification | Section 3.13.3 |
Data flow optimizations
|
Section 3.13.4 |
Expression simplification | Section 3.13.5 |
Inline expansion of functions | Section 3.13.6 |
Function symbol aliasing | Section 3.13.7 |
Induction variables and strength reduction | Section 3.13.8 |
Loop-invariant code motion | Section 3.13.9 |
Loop rotation | Section 3.13.10 |
Instruction scheduling | Section 3.13.11 |
ARM-Specific Optimization | See |
---|---|
Tail merging | Section 3.13.12 |
Autoincrement addressing | Section 3.13.13 |
Block conditionalizing | Section 3.13.14 |
Epilog inlining | Section 3.13.15 |
Removing comparisons to zero | Section 3.13.16 |
Integer division with constant divisor | Section 3.13.17 |
Branch chaining | Section 3.13.18 |