1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 00:12:50 +01:00
llvm-mirror/tools
Lang Hames f0b9601a6d 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.

llvm-svn: 158757
2012-06-19 22:51:23 +00:00
..
bugpoint Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
bugpoint-passes build: Tidy up a bunch of tool Makefiles, and simplify where possible using the 2011-10-18 19:27:24 +00:00
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 LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-as LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-bcanalyzer fix PR12301 - llvm-bcanalyze should print to stdout, not stderr (except for errors). 2012-03-19 23:40:48 +00:00
llvm-config llvm-config: Use sys::fs::equivalent instead of string comparison. 2012-05-15 22:07:18 +00:00
llvm-cov LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
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 LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-extract Remove extraneous ".get()->" which is just "->". No functionality change. 2011-12-30 19:17:23 +00:00
llvm-link LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-mc Allow MCCodeEmitter access to the target MCRegisterInfo. 2012-05-15 17:35:52 +00:00
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 LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-readobj Fix uses of the C99 PRI format macros not to conflict with C++11 UDLs. 2012-03-10 02:04:38 +00:00
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 openbsd doesn't support soname, patch by Brad Smith! 2012-04-25 06:37:20 +00:00
llvm-size LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-stress Do not convert between fp128 <-> ppc_fp128 since there is no legal cast conversion between the two. 2012-04-15 20:17:14 +00:00
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 [CMake] Restructure how Clang, Polly and other external projects get included. 2012-04-26 19:43:35 +00:00
LLVMBuild.txt Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
Makefile Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00