1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib/Target/AArch64
Sanjay Patel 02638731c1 transform obscured FP sign bit ops into a fabs/fneg using TLI hook
This is effectively a revert of:
http://reviews.llvm.org/rL249702 - [InstCombine] transform masking off of an FP sign bit into a fabs() intrinsic call (PR24886)
and:
http://reviews.llvm.org/rL249701 - [ValueTracking] teach computeKnownBits that a fabs() clears sign bits
and a reimplementation as a DAG combine for targets that have IEEE754-compliant fabs/fneg instructions.

This is intended to resolve the objections raised on the dev list:
http://lists.llvm.org/pipermail/llvm-dev/2016-April/098154.html
and:
https://llvm.org/bugs/show_bug.cgi?id=24886#c4

In the interest of patch minimalism, I've only partly enabled AArch64. PowerPC, MIPS, x86 and others can enable later.

Differential Revision: http://reviews.llvm.org/D19391

llvm-svn: 271573
2016-06-02 20:01:37 +00:00
..
AsmParser [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Disassembler Remove autoconf support 2016-01-26 21:29:08 +00:00
InstPrinter add support for -print-imm-hex for AArch64 2016-05-13 18:00:09 +00:00
MCTargetDesc Delete Reloc::Default. 2016-05-18 22:04:49 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
Utils Delete AArch64II::MO_CONSTPOOL. 2016-05-31 18:31:14 +00:00
AArch64.h AArch64: avoid clobbering SP for dead MOVimm pseudos. 2016-04-01 23:14:52 +00:00
AArch64.td AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64A53Fix835769.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
AArch64A57FPLoadBalancing.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64AddressTypePromotion.cpp Cleanup comments. NFC. 2016-05-02 14:50:30 +00:00
AArch64AdvSIMDScalarPass.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64AsmPrinter.cpp Clean up redundant copies of Triple objects. NFC 2015-06-16 15:44:21 +00:00
AArch64BranchRelaxation.cpp [AArch64] Fix typo. NFC. 2016-03-25 14:37:43 +00:00
AArch64CallingConvention.h Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
AArch64CallingConvention.td AArch64: Use a callee save registers for swiftself parameters 2016-04-13 21:43:16 +00:00
AArch64CallLowering.cpp [GlobalISel] Coding style and whitespace fixes 2016-04-14 17:23:33 +00:00
AArch64CallLowering.h [GlobalISel] Coding style and whitespace fixes 2016-04-14 17:23:33 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64CollectLOH.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64ConditionalCompares.cpp [AArch64] Remove unused MBP headers/dependency. NFC. 2016-05-05 20:58:38 +00:00
AArch64ConditionOptimizer.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64DeadRegisterDefinitionsPass.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64ExpandPseudoInsts.cpp Move helper classes into anonymous namespaces. NFC. 2016-05-15 15:18:11 +00:00
AArch64FastISel.cpp Delete AArch64II::MO_CONSTPOOL. 2016-05-31 18:31:14 +00:00
AArch64FrameLowering.cpp [PEI, AArch64] Use empty spaces in stack area for local stack slot allocation. 2016-06-02 16:22:07 +00:00
AArch64FrameLowering.h [PEI, AArch64] Use empty spaces in stack area for local stack slot allocation. 2016-06-02 16:22:07 +00:00
AArch64InstrAtomics.td AArch64: expand cmpxchg after regalloc at -O0. 2016-04-14 17:03:29 +00:00
AArch64InstrFormats.td add support for -print-imm-hex for AArch64 2016-05-13 18:00:09 +00:00
AArch64InstrInfo.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64InstrInfo.h [foldMemoryOperand()] Pass LiveIntervals to enable liveness check. 2016-05-10 08:09:37 +00:00
AArch64InstrInfo.td AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64ISelDAGToDAG.cpp [AArch64] Generate a BFI/BFXIL from 'or (and X, MaskImm), OrImm'. 2016-05-26 13:27:56 +00:00
AArch64ISelLowering.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64ISelLowering.h transform obscured FP sign bit ops into a fabs/fneg using TLI hook 2016-06-02 20:01:37 +00:00
AArch64LoadStoreOptimizer.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64MachineFunctionInfo.h [PEI, AArch64] Use empty spaces in stack area for local stack slot allocation. 2016-06-02 16:22:07 +00:00
AArch64MCInstLower.cpp Convert some AArch64 code to foreach loops. NFC. 2015-08-03 19:04:32 +00:00
AArch64MCInstLower.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
AArch64PBQPRegAlloc.cpp CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC 2016-02-27 06:40:41 +00:00
AArch64PBQPRegAlloc.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64RedundantCopyElimination.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64RegisterBankInfo.cpp [RegisterBankInfo] Change the API for the verify methods. 2016-04-21 18:34:43 +00:00
AArch64RegisterBankInfo.h [AArch64] Teach RegisterBankInfo about the CC register bank. 2016-04-07 00:39:29 +00:00
AArch64RegisterInfo.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
AArch64RegisterInfo.h CXX_FAST_TLS calling convention: performance improvement for AArch64. 2015-12-16 21:04:19 +00:00
AArch64RegisterInfo.td Fix typo in comment. NFC 2016-04-24 17:55:57 +00:00
AArch64SchedA53.td Remove MinLatency in SchedMachineModel. NFC. 2016-04-26 00:37:46 +00:00
AArch64SchedA57.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td AArch64: Add missing schedinfo, check completeness for cyclone 2016-03-01 21:20:31 +00:00
AArch64SchedKryo.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedKryoDetails.td [AArch64] Add support for Qualcomm Kryo CPU. 2016-02-12 15:51:51 +00:00
AArch64SchedM1.td Remove MinLatency in SchedMachineModel. NFC. 2016-04-26 00:37:46 +00:00
AArch64Schedule.td AArch64: Add missing schedinfo, check completeness for cyclone 2016-03-01 21:20:31 +00:00
AArch64SelectionDAGInfo.cpp [DAGCombiner] Follow coding convention for function name (NFC) 2016-04-27 17:27:16 +00:00
AArch64SelectionDAGInfo.h [DAGCombiner] Follow coding convention for function name (NFC) 2016-04-27 17:27:16 +00:00
AArch64StorePairSuppress.cpp Add optimization bisect opt-in calls for AArch64 passes 2016-04-25 21:58:52 +00:00
AArch64Subtarget.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64Subtarget.h AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64TargetMachine.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64TargetMachine.h Delete Reloc::Default. 2016-05-18 22:04:49 +00:00
AArch64TargetObjectFile.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
AArch64TargetObjectFile.h
AArch64TargetTransformInfo.cpp AArch64: Do not test for CPUs, use SubtargetFeatures 2016-06-02 18:03:53 +00:00
AArch64TargetTransformInfo.h [TTI] Add hook for vector extract with extension 2016-04-27 15:20:21 +00:00
CMakeLists.txt [AArch64][CallLowering] Do not build the API if GlobalISel is not built. 2016-04-07 20:47:51 +00:00
LLVMBuild.txt [AArch64] Plug the beginning of the GlobalISel pipeline. 2016-02-11 19:35:06 +00:00