llvm-6502/tools
Lang Hames d693cafcfb Add DAG-combines for aggressive FMA formation.
This patch adds DAG combines to form FMAs from pairs of FADD + FMUL or
FSUB + FMUL. The combines are performed when:
(a) Either
      AllowExcessFPPrecision option (-enable-excess-fp-precision for llc)
        OR
      UnsafeFPMath option (-enable-unsafe-fp-math)
    are set, and
(b) TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) is true for the type of
    the FADD/FSUB, and
(c) The FMUL only has one user (the FADD/FSUB).

If your target has fast FMA instructions you can make use of these combines by
overriding TargetLoweringInfo::isFMAFasterThanMulAndAdd(VT) to return true for
types supported by your FMA instruction, and adding patterns to match ISD::FMA
to your FMA instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158757 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-19 22:51:23 +00:00
..
bugpoint
bugpoint-passes
gold Use LTO_CODEGEN_PIC_MODEL_DYNAMIC for PIE. This requirest a git version of 2012-06-13 13:30:24 +00:00
llc Add DAG-combines for aggressive FMA formation. 2012-06-19 22:51:23 +00:00
lli Plug a leak when using MCJIT. 2012-05-20 17:24:08 +00:00
llvm-ar
llvm-as
llvm-bcanalyzer
llvm-config llvm-config: Use sys::fs::equivalent instead of string comparison. 2012-05-15 22:07:18 +00:00
llvm-cov
llvm-diff Remove unused private fields found by clang's new -Wunused-private-field. 2012-06-06 18:25:08 +00:00
llvm-dis Remove assignments which aren't used afterwards. 2012-06-15 19:28:20 +00:00
llvm-dwarfdump
llvm-extract
llvm-link
llvm-mc
llvm-nm [llvm-nm] Update documentation to cover object file support and arguments. 2012-06-06 23:34:10 +00:00
llvm-objdump Fixed a bug in llvm-objdump when disassembling using -macho option for a binary 2012-05-18 00:13:56 +00:00
llvm-prof Round 2 of dead private variable removal. 2012-06-06 19:47:08 +00:00
llvm-ranlib
llvm-readobj
llvm-rtdyld Added LLIMCJITMemoryManager to the lli. This manager will be used for MCJIT instead of DefaultJIMMemoryManager. 2012-05-16 18:50:11 +00:00
llvm-shlib
llvm-size
llvm-stress
lto Remove unused private fields found by clang's new -Wunused-private-field. 2012-06-06 18:25:08 +00:00
macho-dump Refactor data-in-code annotations. 2012-05-18 19:12:01 +00:00
opt Teach the 'opt' tool about '-Os' and '-Oz', corresponding to the Clang 2012-05-16 08:32:49 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile