nld and noft Manual

noft Utility
nld and noft Manual520384-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.