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 Remove Support/IncludeFile.h and its only user. This is actively harmful, since 2014-08-07 20:41:17 +00:00
CallGraphSCCPass.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
CallPrinter.cpp [PM] Split the CallGraph out from the ModulePass which creates the 2013-11-26 04:19:30 +00:00
CMakeLists.txt Remove the unused FindUsedTypes pass. 2014-11-24 20:53:26 +00:00
GlobalsModRef.cpp Use a range loop. 2014-05-08 17:57:50 +00:00
InlineCost.cpp [InstSimplify] Add SimplifyFPBinOp function. 2015-02-06 20:02:51 +00:00
IPA.cpp Remove the unused FindUsedTypes pass. 2014-11-24 20:53:26 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile