|
Instruction Combining
At the source code level, combine two statements into one statement. At the IL (Intermediate Language) level, combine two instructions into one instruction. Example:In the code fragment below, the two post-increment statements can be combined into one statement. int i; void f (void) { i++; i++; } The code fragment below shows the function after the two post-increment statements have been combined into one statement. int i; void f (void) { i += 2; } Notes:Many operators are candidates for instruction combining, including addition, subtraction, multiplication, left and right shift, boolean operations, and others. Some compilers perform instruction combining for some operators; few compilers perform instruction combining for a wide variety of operators. For example, some compilers will combine two post-increment statements, but will not combine two pre-increment statements, or two post-decrement statements. Instruction combining can be performed within basic blocks and across basic blocks. Some compilers perform this optimization within basic blocks; few compilers perform this optimization across basic blocks. Loop unrolling can provide additional opportunities for instruction combining. © 1990-2012 Nullstone Corporation. All Rights Reserved. |