llvm-6502/lib/Analysis/IPA
Michael Zolotukhin 3da8e45675 [InstSimplify] Add SimplifyFPBinOp function.
It is a variation of SimplifyBinOp, but it takes into account
FastMathFlags.

It is needed in inliner and loop-unroller to accurately predict the
transformation's outcome (previously we dropped the flags and were too
conservative in some cases).

Example:
float foo(float *a, float b) {
 float r;
 if (a[1] * b)
   r = /* a lot of expensive computations */;
 else
   r = 1;
 return r;
}
float boo(float *a) {
 return foo(a, 0.0);
}

Without this patch, we don't inline 'foo' into 'boo'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228432 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-06 20:02:51 +00:00
..
CallGraph.cpp
CallGraphSCCPass.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
CallPrinter.cpp
CMakeLists.txt
GlobalsModRef.cpp
InlineCost.cpp [InstSimplify] Add SimplifyFPBinOp function. 2015-02-06 20:02:51 +00:00
IPA.cpp
LLVMBuild.txt
Makefile