1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/lib/Target/AArch64
Ahmed Bougacha 081c2ca61f [GlobalISel] Add basic Selector-emitter tblgen backend.
This adds a basic tablegen backend that analyzes the SelectionDAG
patterns to find simple ones that are eligible for GlobalISel-emission.

That's similar to FastISel, with one notable difference: we're not fed
ISD opcodes, so we need to map the SDNode operators to generic opcodes.
That's done using GINodeEquiv in TargetGlobalISel.td.

Otherwise, this is mostly boilerplate, and lots of filtering of any kind
of "complicated" pattern. On AArch64, this is sufficient to match G_ADD
up to s64 (to ADDWrr/ADDXrr) and G_BR (to B).

Differential Revision: https://reviews.llvm.org/D26878

llvm-svn: 290284
2016-12-21 23:26:20 +00:00
..
AsmParser Replace APFloatBase static fltSemantics data members with getter functions 2016-12-14 11:57:17 +00:00
Disassembler Support: Remove MemoryObject and DataStreamer interfaces. 2016-11-02 00:08:37 +00:00
InstPrinter AArch64: TableGenerate system instruction operands. 2016-07-05 21:23:04 +00:00
MCTargetDesc Give some helper classes/functions internal linkage. NFC. 2016-11-19 20:44:26 +00:00
TargetInfo Move the global variables representing each Target behind accessor function 2016-10-09 23:00:34 +00:00
Utils AArch64: try to fix optimized build failure. 2016-07-05 23:15:58 +00:00
AArch64.h [AArch64] Avoid generating indexed vector instructions for Exynos 2016-10-08 12:30:07 +00:00
AArch64.td [AArch64] Add FeatureSlowMisaligned128Store to Exynos M1 and M2 2016-12-16 00:18:00 +00:00
AArch64A53Fix835769.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64A57FPLoadBalancing.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64AddressTypePromotion.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64AdvSIMDScalarPass.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64AsmPrinter.cpp [xray] Add XRay support for Mach-O in CodeGen 2016-11-23 02:07:04 +00:00
AArch64CallingConvention.h
AArch64CallingConvention.td GlobalISel: produce correct code for signext/zeroext ABI flags. 2016-09-21 12:57:45 +00:00
AArch64CallLowering.cpp [GlobalISel] Move extendRegister where it belongs. NFCI 2016-12-13 10:46:12 +00:00
AArch64CallLowering.h [GlobalISel] Extract handleAssignments out of AArch64CallLowering 2016-12-05 10:40:33 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64CollectLOH.cpp Revert "AArch64CollectLOH: Rewrite as block-local analysis." 2016-12-17 18:53:11 +00:00
AArch64ConditionalCompares.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64ConditionOptimizer.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64DeadRegisterDefinitionsPass.cpp AArch64: Use DeadRegisterDefinitionsPass before regalloc. 2016-11-16 03:38:27 +00:00
AArch64ExpandPseudoInsts.cpp AArch64: Enable post-ra liveness updates 2016-12-16 23:55:43 +00:00
AArch64FastISel.cpp IR: Change the gep_type_iterator API to avoid always exposing the "current" type. 2016-12-02 02:24:42 +00:00
AArch64FrameLowering.cpp Move FrameInstructions from MachineModuleInfo to MachineFunction 2016-11-30 23:48:42 +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
AArch64GenRegisterBankInfo.def [globalisel][aarch64] Fix unintended assumptions about PartialMappingIdx. NFC. 2016-12-06 14:39:57 +00:00
AArch64InstrAtomics.td AArch64: properly calculate cmpxchg status in FastISel. 2016-08-02 20:22:36 +00:00
AArch64InstrFormats.td [AArch64] Refactor LSE support as feature separate from V8.1a support. 2016-11-30 22:25:24 +00:00
AArch64InstrInfo.cpp [AArch64] Fold more spilled/refilled COPYs. 2016-12-01 23:43:55 +00:00
AArch64InstrInfo.h MachineScheduler: Export function to construct "default" scheduler. 2016-11-28 20:11:54 +00:00
AArch64InstrInfo.td [AArch64] Refactor LSE support as feature separate from V8.1a support. 2016-11-30 22:25:24 +00:00
AArch64InstructionSelector.cpp [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
AArch64InstructionSelector.h [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
AArch64ISelDAGToDAG.cpp [AArch64] Fix useful bits detection for BFM instructions 2016-11-30 17:04:22 +00:00
AArch64ISelLowering.cpp [AArch64] Remove a redundant check. NFC. 2016-12-21 21:40:47 +00:00
AArch64ISelLowering.h [AArch64] allow and-not-compare transform to form 'bics' 2016-11-29 22:28:58 +00:00
AArch64LegalizerInfo.cpp GlobalISel: allow truncating pointer casts on AArch64. 2016-10-31 18:31:09 +00:00
AArch64LegalizerInfo.h GlobalISel: rename legalizer components to match others. 2016-10-14 22:18:18 +00:00
AArch64LoadStoreOptimizer.cpp AArch64: Enable post-ra liveness updates 2016-12-16 23:55:43 +00:00
AArch64MachineFunctionInfo.h [AArch64] Mark various *Info classes as 'final'. NFC. 2016-07-27 14:31:46 +00:00
AArch64MCInstLower.cpp Remove TargetTriple from AArch64MCInstLower as it's used in few places 2016-10-01 01:50:25 +00:00
AArch64MCInstLower.h
AArch64PBQPRegAlloc.cpp CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC 2016-02-27 06:40:41 +00:00
AArch64PBQPRegAlloc.h
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64RedundantCopyElimination.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64RegisterBankInfo.cpp GlobalISel: handle G_SEQUENCE fallbacks gracefully. 2016-12-06 18:38:38 +00:00
AArch64RegisterBankInfo.h [AArch64][GlobalISel] Remove redundant RBI comments. NFC. 2016-12-15 18:22:15 +00:00
AArch64RegisterInfo.cpp Clarify rules for reserved regs, fix aarch64 ones. 2016-11-30 22:17:10 +00:00
AArch64RegisterInfo.h AArch64: Enable post-ra liveness updates 2016-12-16 23:55:43 +00:00
AArch64RegisterInfo.td [AArch64] Corrected spill size for DDD register class. NFCI 2016-10-21 09:53:42 +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 CodeGen: Use MachineInstr& in TargetInstrInfo, NFC 2016-06-30 00:01:54 +00:00
AArch64SchedFalkor.td [AArch64] Add a basic SchedMachineModel for Falkor. 2016-11-29 20:00:27 +00:00
AArch64SchedKryo.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedKryoDetails.td
AArch64SchedM1.td [AArch64] Adjust the scheduling model for Exynos M1. 2016-09-06 19:22:29 +00:00
AArch64Schedule.td CodeGen: Use MachineInstr& in TargetInstrInfo, NFC 2016-06-30 00:01:54 +00:00
AArch64SchedVulcan.td [AArch64] Maximize 80-column. NFC. 2016-11-22 14:12:09 +00:00
AArch64SelectionDAGInfo.cpp [SDAG] Remove FixedArgs parameter from CallLoweringInfo::setCallee 2016-06-22 12:54:25 +00:00
AArch64SelectionDAGInfo.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
AArch64StorePairSuppress.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
AArch64Subtarget.cpp [AArch64] Set the max interleave factor for Falkor. 2016-11-22 14:25:02 +00:00
AArch64Subtarget.h [AArch64] Refactor LSE support as feature separate from V8.1a support. 2016-11-30 22:25:24 +00:00
AArch64SystemOperands.td AArch64: TableGenerate system instruction operands. 2016-07-05 21:23:04 +00:00
AArch64TargetMachine.cpp [GlobalISel] Drop workaround for Legalizer member/class sharing a name. NFC. 2016-12-15 18:45:30 +00:00
AArch64TargetMachine.h Revert "[AArch64] Use the reciprocal estimation machinery" 2016-09-20 19:02:06 +00:00
AArch64TargetObjectFile.cpp CodeGen: simplify TargetMachine::getSymbol interface. NFC. 2016-11-22 16:17:20 +00:00
AArch64TargetObjectFile.h Move the Mangler from the AsmPrinter down to TLOF and clean up the 2016-09-16 07:33:15 +00:00
AArch64TargetTransformInfo.cpp [AArch64] Guard Misaligned 128-bit store penalty by subtarget feature 2016-12-15 18:36:59 +00:00
AArch64TargetTransformInfo.h Do a sweep over move ctors and remove those that are identical to the default. 2016-10-20 12:20:28 +00:00
AArch64VectorByElementOpt.cpp [AArch64] Avoid generating indexed vector instructions for Exynos 2016-10-08 12:30:07 +00:00
CMakeLists.txt [GlobalISel] Add basic Selector-emitter tblgen backend. 2016-12-21 23:26:20 +00:00
LLVMBuild.txt