|
Integer Mod Optimization
On most architectures, integer divide is a relatively expensive instruction. Power-of-two integer modulus expressions can be replaced with conditional and shift instructions to avoid the divide and multiply and increase run-time performance. Example:In the function below, the power-of-two integer modulus expression (x % 8) can be replaced with faster instructions.
int f (int x)
{
return x % 8;
}
The code fragment below shows the function after the modulus expression has been optimized.
int f (int x)
{
int temp = x & 7;
return (x < 0) ? ((temp == 0) ? 0 : (temp | ~7)) : temp;
}
© 1990-2012 Nullstone Corporation. All Rights Reserved. |