llvm-6502/lib/Transforms
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
..
Hello
InstCombine InstCombine: Combine select sequences into a single select 2015-02-06 17:49:36 +00:00
Instrumentation [ASan] Enable -asan-stack-dynamic-alloca by default. 2015-02-05 19:39:20 +00:00
IPO Add range adapters predecessors() and successors() for BBs 2015-02-04 19:14:57 +00:00
ObjCARC IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
Scalar [InstSimplify] Add SimplifyFPBinOp function. 2015-02-06 20:02:51 +00:00
Utils LowerSwitch: Use ConstantInt for CaseRange::{Low,High} 2015-02-05 16:58:10 +00:00
Vectorize [LV] Move addRuntimeCheck to LoopAccessAnalysis 2015-02-06 18:31:04 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile