llvm-6502/lib
Hal Finkel c404e8208c Optionally enable more-aggressive FMA formation in DAGCombine
The heuristic used by DAGCombine to form FMAs checks that the FMUL has only one
use, but this is overly-conservative on some systems. Specifically, if the FMA
and the FADD have the same latency (and the FMA does not compete for resources
with the FMUL any more than the FADD does), there is no need for the
restriction, and furthermore, forming the FMA leaving the FMUL can still allow
for higher overall throughput and decreased critical-path length.

Here we add a new TLI callback, enableAggressiveFMAFusion, false by default, to
elide the hasOneUse check. This is enabled for PowerPC by default, as most
PowerPC systems will benefit.

Patch by Olivier Sallenave, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218120 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-19 11:42:56 +00:00
..
Analysis Add file to CMake build as well. 2014-09-18 00:39:20 +00:00
AsmParser
Bitcode
CodeGen Optionally enable more-aggressive FMA formation in DAGCombine 2014-09-19 11:42:56 +00:00
DebugInfo Fix DWARFUnitSection::getUnitForOffset(). 2014-09-18 09:38:15 +00:00
ExecutionEngine [MCJIT] Fix a debugging-output formatting bug in RuntimeDyld. 2014-09-18 16:43:24 +00:00
IR Use cast<> instead of unchecked dyn_cast<> 2014-09-18 22:28:56 +00:00
IRReader
LineEditor
Linker
LTO LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
MC Another required re-setting for MCStreamer::reset(). 2014-09-17 17:50:34 +00:00
Object LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
Option
ProfileData LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
Support LineIterator: Provide a variant that keeps blank lines 2014-09-17 15:43:01 +00:00
TableGen [TableGen] Fully resolve class-instance values before defs in multiclasses 2014-09-16 17:14:13 +00:00
Target Optionally enable more-aggressive FMA formation in DAGCombine 2014-09-19 11:42:56 +00:00
Transforms Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile