1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 08:23:21 +01:00
llvm-mirror/include/llvm/Target
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
..
Mangler.h Prune some includes and forward declarations. 2012-03-25 18:09:44 +00:00
Target.td Teach tblgen's set theory "sequence" operator to support an optional stride operand. 2012-05-24 21:37:08 +00:00
TargetCallingConv.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
TargetCallingConv.td
TargetData.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
TargetELFWriterInfo.h [Hexagon] Clean up Hexagon ELF definition. 2012-05-17 16:46:46 +00:00
TargetFrameLowering.h Prune some includes and forward declarations. 2012-03-25 18:09:44 +00:00
TargetInstrInfo.h *typo: Cyles changed to Cycles 2012-06-13 15:53:04 +00:00
TargetIntrinsicInfo.h
TargetJITInfo.h Prune some includes and forward declarations. 2012-03-25 18:09:44 +00:00
TargetLibraryInfo.h fix pr12559: mark unavailable win32 math libcalls 2012-04-17 23:05:54 +00:00
TargetLowering.h Add a new intrinsic: llvm.fmuladd. This intrinsic represents a multiply-add 2012-06-05 19:07:46 +00:00
TargetLoweringObjectFile.h Prune some includes and forward declarations. 2012-03-25 18:09:44 +00:00
TargetMachine.h Move the TLSModel information into the TargetMachine rather than hiding 2012-04-08 17:20:55 +00:00
TargetOpcodes.h
TargetOptions.h Add DAG-combines for aggressive FMA formation. 2012-06-19 22:51:23 +00:00
TargetRegisterInfo.h Add a PrintRegUnit helper similar to PrintReg. 2012-05-31 17:18:29 +00:00
TargetSchedule.td misched: Added MultiIssueItineraries. 2012-06-05 03:44:40 +00:00
TargetSelectionDAG.td Rename @llvm.debugger to @llvm.debugtrap. 2012-05-14 18:58:10 +00:00
TargetSelectionDAGInfo.h
TargetSubtargetInfo.h Prune some includes and forward declarations. 2012-03-25 18:09:44 +00:00