
Integer Divide Optimization
Integer divide instructions are usually slower or much slower than other instructions such as integer addition and shift. Divide expressions with poweroftwo denominators or other special bit patterns can be replaced with a faster instructions. Example:The integer divide expression in the code fragment below can be replaced with a shift expression. int f (unsigned int i) { return i / 2; } Below is the code fragment after the integer divide expression has been replaced with a shift expression. int f (unsigned int i) { return i >> 1; } Notes:Failure to generate correct code for integer divide is one of the most common defects in optimizers. NULLSTONE isolated defects in twelve of twenty commercially available compilers that were evaluated. It is possible to perform integer divide optimization for both signed and unsigned integers, and both positive and negative poweroftwo denominators. Most compilers optimize some poweroftwo divide expressions, but few compilers can optimize all four combinations. © 19902012 Nullstone Corporation. All Rights Reserved. 