1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib/Target/AArch64
Quentin Colombet edee8f6d3b Re-apply [AArch64][RegisterBankInfo] Use the statically computed mappings for COPY
This reverts commit r315823, thus re-applying r315781.

Also make sure we don't use G_BITCAST mapping for non-generic registers.
Non-generic registers don't have a type but do have a reg bank.
Something the COPY mapping now how to deal with but the G_BITCAST
mapping don't.

-- Original Commit Message --
We use to resort on the generic implementation to get the mappings for
COPYs. The generic implementation resorts on table lookup and
dynamically allocated objects to get the valid mappings.

Given we already know how to map G_BITCAST and have the static mappings
for them, use that code path for COPY as well. This is much more
efficient.

Improve the compile time of RegBankSelect by up to 20%.

Note: When we eventually generate all the mappings via TableGen, we
wouldn't have to do that dance to shave compile time. The intent of this
change was to make sure that moving to static structure really pays off.

NFC.

llvm-svn: 315947
2017-10-16 22:28:40 +00:00
..
AsmParser [Asm] Add debug tracing in table-generated assembly matcher 2017-10-11 09:17:43 +00:00
Disassembler [AArch64] Fix for buildbots, unused function 2017-08-18 09:08:05 +00:00
InstPrinter Remove unused variables. No functionality change. 2017-10-08 19:11:02 +00:00
MCTargetDesc [MC] Have MCObjectStreamer take its MCAsmBackend argument via unique_ptr. 2017-10-11 23:34:47 +00:00
TargetInfo
Utils [AArch64AsmParser] rewrite of function parseSysAlias 2017-03-03 08:12:47 +00:00
AArch64.h [AArch64][Falkor] Avoid HW prefetcher tag collisions (step 2) 2017-07-18 16:14:22 +00:00
AArch64.td [AArch64] Add basic support for Qualcomm's Saphira CPU. 2017-09-25 14:05:00 +00:00
AArch64A53Fix835769.cpp
AArch64A57FPLoadBalancing.cpp LiveRegUnits: Rename accumulateBackward()->accumulate() 2017-07-07 03:02:17 +00:00
AArch64AdvSIMDScalarPass.cpp
AArch64AsmPrinter.cpp [AArch64] Support COFF linker directives 2017-08-31 08:28:48 +00:00
AArch64CallingConvention.h
AArch64CallingConvention.td AArch64: support SwiftCC properly on AAPCS64 2017-09-22 04:31:44 +00:00
AArch64CallLowering.cpp [GISel]: Fix generation of illegal COPYs during CallLowering 2017-10-09 20:07:43 +00:00
AArch64CallLowering.h GlobalISel (AArch64): fix ABI at border between GPRs and SP. 2017-08-21 21:56:11 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp fix trivial typos in comments; NFC 2017-07-03 06:32:59 +00:00
AArch64CollectLOH.cpp
AArch64CondBrTuning.cpp [AArch64] Fix -Wimplicit-fallthrough warnings. NFCI. 2017-07-07 13:03:28 +00:00
AArch64ConditionalCompares.cpp [AArch64] Update successor probabilities after ccmp-conversion 2017-06-27 15:00:22 +00:00
AArch64ConditionOptimizer.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64DeadRegisterDefinitionsPass.cpp [AArch64] LSE Atomics reorg - part 1 2017-08-05 04:30:55 +00:00
AArch64ExpandPseudoInsts.cpp Insert IMPLICIT_DEFS for undef uses in tail merging 2017-09-06 20:45:24 +00:00
AArch64FalkorHWPFFix.cpp [AArch64][Falkor] Ignore SP based loads in HW prefetch fixups. 2017-09-27 17:14:10 +00:00
AArch64FastISel.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64FrameLowering.cpp Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
AArch64FrameLowering.h Add "Restored" flag to CalleeSavedInfo 2017-08-10 16:17:32 +00:00
AArch64GenRegisterBankInfo.def [GlobalISel] Make GlobalISel a non-optional library. 2017-08-03 21:52:25 +00:00
AArch64InstrAtomics.td [AArch64] LSE Atomics reorg - part 1 2017-08-05 04:30:55 +00:00
AArch64InstrFormats.td Re-commit r315885: [globalisel][tblgen] Add support for iPTR and implement am_unscaled* and am_indexed* 2017-10-16 03:36:29 +00:00
AArch64InstrInfo.cpp [MachineOutliner] Disable outlining from LinkOnceODRs by default 2017-10-07 00:16:34 +00:00
AArch64InstrInfo.h [MachineOutliner] Disable outlining from LinkOnceODRs by default 2017-10-07 00:16:34 +00:00
AArch64InstrInfo.td [AArch64] v8.3-a complex number support 2017-08-31 09:27:04 +00:00
AArch64InstructionSelector.cpp [aarch64][globalisel] Fix a crash in selectAddrModeIndexed() caused by incorrect G_FRAME_INDEX handling 2017-10-16 05:39:30 +00:00
AArch64ISelDAGToDAG.cpp [AArch64] Avoid selecting XZR inline ASM memory operand 2017-07-14 21:46:16 +00:00
AArch64ISelLowering.cpp [AArch64] Improve codegen for inverted overflow checking intrinsics 2017-10-09 15:15:09 +00:00
AArch64ISelLowering.h GlobalISel (AArch64): fix ABI at border between GPRs and SP. 2017-08-21 21:56:11 +00:00
AArch64LegalizerInfo.cpp [AArch64][LegalizerInfo] Mark s128 G_BITCAST legal 2017-10-16 22:28:27 +00:00
AArch64LegalizerInfo.h
AArch64LoadStoreOptimizer.cpp [AArch64] Fix an assertion for pre-index generation with unscaled loads/stores. 2017-08-04 16:44:06 +00:00
AArch64MachineFunctionInfo.h [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64MacroFusion.cpp Untabify. 2017-08-28 06:47:47 +00:00
AArch64MacroFusion.h Recommit rL305677: [CodeGen] Add generic MacroFusion pass 2017-06-19 12:53:31 +00:00
AArch64MCInstLower.cpp [AArch64] Make assert messages uniform and general [NFC] 2017-06-28 19:37:38 +00:00
AArch64MCInstLower.h [COFF, ARM64] Add support for Windows ARM64 COFF format 2017-06-27 23:58:19 +00:00
AArch64PBQPRegAlloc.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
AArch64PBQPRegAlloc.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64RedundantCopyElimination.cpp [AArch64] Redundant Copy Elimination - remove more zero copies. 2017-07-23 16:38:08 +00:00
AArch64RegisterBankInfo.cpp Re-apply [AArch64][RegisterBankInfo] Use the statically computed mappings for COPY 2017-10-16 22:28:40 +00:00
AArch64RegisterBankInfo.h [RegisterBankInfo] Uniquely allocate instruction mapping. 2017-05-05 22:48:22 +00:00
AArch64RegisterBanks.td
AArch64RegisterInfo.cpp [COFF, ARM64, CodeView] Add support to emit CodeView debug info for ARM64 COFF 2017-07-20 20:20:00 +00:00
AArch64RegisterInfo.h
AArch64RegisterInfo.td
AArch64SchedA53.td [MachineScheduler] Reference the correct header. 2017-03-26 21:27:21 +00:00
AArch64SchedA57.td fix trivial typos in comment, NFC 2017-06-24 16:00:26 +00:00
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td
AArch64SchedFalkor.td [AArch64][Falkor] Fix some sched details. 2017-05-28 21:48:31 +00:00
AArch64SchedFalkorDetails.td [AArch64][Falkor] Remove some non-existent opcodes from sched detail regexes. NFC. 2017-06-23 21:59:09 +00:00
AArch64SchedKryo.td
AArch64SchedKryoDetails.td [AArch64][Kryo] Add missing write latency for LDAXP, LDXP second destination. 2017-06-19 21:57:42 +00:00
AArch64SchedM1.td [AArch64] Adjust the cost model for Exynos M1 and M2 2017-09-18 19:00:38 +00:00
AArch64SchedThunderX2T99.td [AArch64] Enable ARMv8.3-A pointer authentication 2017-08-11 13:14:00 +00:00
AArch64SchedThunderX.td [AArch64] Enable ARMv8.3-A pointer authentication 2017-08-11 13:14:00 +00:00
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp [AArch64] Drive-by cleanup, make this code shorter. NFCI. 2017-03-22 23:37:58 +00:00
AArch64SelectionDAGInfo.h
AArch64StorePairSuppress.cpp
AArch64Subtarget.cpp [AArch64] Add basic support for Qualcomm's Saphira CPU. 2017-09-25 14:05:00 +00:00
AArch64Subtarget.h [AArch64] Add basic support for Qualcomm's Saphira CPU. 2017-09-25 14:05:00 +00:00
AArch64SystemOperands.td [AArch64] IDSAR6 register assembler support 2017-08-31 08:36:45 +00:00
AArch64TargetMachine.cpp Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
AArch64TargetMachine.h Revert "TargetMachine: Merge TargetMachine and LLVMTargetMachine" 2017-10-12 22:57:28 +00:00
AArch64TargetObjectFile.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
AArch64TargetObjectFile.h [COFF, ARM64] Add support for Windows ARM64 COFF format 2017-06-27 23:58:19 +00:00
AArch64TargetTransformInfo.cpp Sink some IntrinsicInst.h and Intrinsics.h out of llvm/include 2017-09-07 23:27:44 +00:00
AArch64TargetTransformInfo.h [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64VectorByElementOpt.cpp
CMakeLists.txt [GlobalISel] Make GlobalISel a non-optional library. 2017-08-03 21:52:25 +00:00
LLVMBuild.txt