[LLVMdev] optimization in presence of floating point

reed kotler rkotler at mips.com
Wed Apr 17 18:32:23 PDT 2013


an interesting problem occurs if you do interval arithmetic.

void foo() {
float XL, XU, Y, Z;

....
call_change_rounding_mode(lower);
XL = Y + Z; // lower bound
call_change_rounding_mode(upper);
XU = Y + Z;

}

Two issues here:
1) will the compiler mistakenly treat Y+Z as a common subexpression.
2) might it move the call_change_rounding_mode after the assignment to 
XU since it seens no dependency.

This is actually to my previous mips16 ir post but is a question of more 
wide interest.





More information about the llvm-dev mailing list