llvm-6502/include/llvm/Target
Stephen Lin e54885af9b AArch64/PowerPC/SystemZ/X86: This patch fixes the interface, usage, and all
in-tree implementations of TargetLoweringBase::isFMAFasterThanMulAndAdd in
order to resolve the following issues with fmuladd (i.e. optional FMA)
intrinsics:

1. On X86(-64) targets, ISD::FMA nodes are formed when lowering fmuladd
intrinsics even if the subtarget does not support FMA instructions, leading
to laughably bad code generation in some situations.

2. On AArch64 targets, ISD::FMA nodes are formed for operations on fp128,
resulting in a call to a software fp128 FMA implementation.

3. On PowerPC targets, FMAs are not generated from fmuladd intrinsics on types
like v2f32, v8f32, v4f64, etc., even though they promote, split, scalarize,
etc. to types that support hardware FMAs.

The function has also been slightly renamed for consistency and to force a
merge/build conflict for any out-of-tree target implementing it. To resolve,
see comments and fixed in-tree examples.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185956 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-09 18:16:56 +00:00
..
CostTable.h Moving Cost Tables up to share with other targets 2013-01-24 23:01:00 +00:00
Mangler.h Don't reach into the middle of TargetMachine and cache one of its ivars. 2013-05-29 20:37:19 +00:00
Target.td TableGen: Generate a function for getting operand indices based on their defined names 2013-06-25 21:22:09 +00:00
TargetCallingConv.h Remove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about 'returned' 2013-04-21 18:05:20 +00:00
TargetCallingConv.td Add TableGen support for callee saved registers. 2012-01-17 22:46:58 +00:00
TargetFrameLowering.h [SystemZ] Clean up register scavenging code 2013-07-05 12:55:00 +00:00
TargetInstrInfo.h [SystemZ] Remove no-op MVCs 2013-07-05 14:38:48 +00:00
TargetIntrinsicInfo.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
TargetItinerary.td I'm introducing a new machine model to simultaneously allow simple 2012-07-07 04:00:00 +00:00
TargetJITInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
TargetLibraryInfo.h Added posix function gettimeofday to LibFunc::Func for all platforms but Windows. 2013-07-03 04:00:51 +00:00
TargetLowering.h AArch64/PowerPC/SystemZ/X86: This patch fixes the interface, usage, and all 2013-07-09 18:16:56 +00:00
TargetLoweringObjectFile.h [DebugInfo] Allow getDebugThreadLocalSymbol to return MCExpr 2013-07-02 18:47:09 +00:00
TargetMachine.h Directly access objects which may change during compilation. 2013-06-17 20:41:25 +00:00
TargetOpcodes.h Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be 2012-09-06 09:17:37 +00:00
TargetOptions.h Remove static, because it was messing everything up. 2013-06-20 06:51:06 +00:00
TargetRegisterInfo.h Add TargetRegisterInfo::getCoveringLanes(). 2013-05-16 18:03:08 +00:00
TargetSchedule.td Support BufferSize on ProcResGroup for unified MOp schedulers. 2013-06-15 04:50:06 +00:00
TargetSelectionDAG.td Create an FPOW SDNode opcode def in the target independent .td file rather than in a specific backend. 2013-05-22 06:36:09 +00:00
TargetSelectionDAGInfo.h Track IR ordering of SelectionDAG nodes 2/4. 2013-05-25 02:42:55 +00:00
TargetSubtargetInfo.h Use the 'target-features' and 'target-cpu' attributes to reset the subtarget features. 2013-02-15 22:31:27 +00:00