nld and noft Manual
noft Utility
nld and noft Manual—520384-003
4-11
Debugging With noft
At optimization level 1, the native compiler:
•
Optimizes across statement boundaries to remove nop instructions.
•
Uses registers instead of memory.
•
Optimizes by finding common subexpressions.
•
At optimization level 2, the native compiler:
•
Replaced the variable i with a derived pointer expression or an induction variable.
•
Eliminates the parameter load and store operations at the procedure entrance by
placing the code inline. This can result in a larger object file.
•
Optimizes across compound statement boundaries. (A loop is an example of a
compound statement.)
•
Uses registers instead of using memory extensively.
•
Changes the loop to load four values at a time instead of one value at a time.
The difference between optimize 1 and optimize 2 is typically much less than it
is in Example 4-3 on page 4-7. This example was chosen to show how the compiler
optimization can result in quite different code at the source statement level. The
program at optimize 2 steps though the loop five times instead of 20 times. The
value of b is also quite different in each loop.