mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-19 17:33:29 +00:00
d8214db086
If a square root call has an FP multiplication argument that can be reassociated, then we can hoist a repeated factor out of the square root call and into a fabs(). In the simplest case, this: y = sqrt(x * x); becomes this: y = fabs(x); This patch relies on an earlier optimization in instcombine or reassociate to put the multiplication tree into a canonical form, so we don't have to search over every permutation of the multiplication tree. Because there are no IR-level FastMathFlags for intrinsics (PR21290), we have to use function-level attributes to do this optimization. This needs to be fixed for both the intrinsics and in the backend. Differential Revision: http://reviews.llvm.org/D5787 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219944 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
ASanStackFrameLayout.h | ||
BasicBlockUtils.h | ||
BuildLibCalls.h | ||
BypassSlowDivision.h | ||
Cloning.h | ||
CmpInstAnalysis.h | ||
CodeExtractor.h | ||
CtorUtils.h | ||
GlobalStatus.h | ||
IntegerDivision.h | ||
Local.h | ||
LoopUtils.h | ||
ModuleUtils.h | ||
PromoteMemToReg.h | ||
SimplifyIndVar.h | ||
SimplifyLibCalls.h | ||
SSAUpdater.h | ||
SSAUpdaterImpl.h | ||
UnifyFunctionExitNodes.h | ||
UnrollLoop.h | ||
ValueMapper.h | ||
VectorUtils.h |