[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