llvm-project/llvm/lib/Target/AArch64
Cullen Rhodes 8a397b66b2 [AArch64][SVE] Add support for spilling/filling ZPR2/3/4
Summary:
This patch enables the register allocator to spill/fill lists of 2, 3
and 4 SVE vectors registers to/from the stack. This is implemented with
pseudo instructions that get expanded to individual LDR_ZXI/STR_ZXI
instructions in AArch64ExpandPseudoInsts.

Patch by Sander de Smalen.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D75988
2020-05-28 10:02:57 +00:00
..
AsmParser [AArch64] Armv8.6-A Mat Mul SVE Assembly 2020-04-24 15:54:06 +01:00
Disassembler CMake: Make most target symbols hidden by default 2020-01-14 19:46:52 -08:00
MCTargetDesc [MC] Change MCCFIInstruction::createDefCfa to cfiDefCfa which does not negate Offset 2020-05-22 15:47:26 -07:00
TargetInfo CMake: Make most target symbols hidden by default 2020-01-14 19:46:52 -08:00
Utils [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices. 2020-01-22 14:32:27 +00:00
AArch64.h [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
AArch64.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64A53Fix835769.cpp
AArch64A57FPLoadBalancing.cpp
AArch64AdvSIMDScalarPass.cpp
AArch64AsmPrinter.cpp [XRay] Change ARM/AArch64/powerpc64le to use version 2 sled (PC-relative address) 2020-04-24 08:35:43 -07:00
AArch64BranchTargets.cpp [AArch64] Fix BTI landing pad generation. 2020-02-13 10:44:34 +00:00
AArch64CallLowering.cpp [AArch64][GlobalISel] Fix sub-64b stack parameter passing on Darwin. 2020-04-24 13:56:43 -07:00
AArch64CallLowering.h
AArch64CallingConvention.cpp
AArch64CallingConvention.h Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
AArch64CallingConvention.td [AArch64][BFloat] basic AArch64 bfloat support 2020-05-27 15:26:40 +01:00
AArch64CleanupLocalDynamicTLSPass.cpp [CallSiteInfo] Handle bundles when updating call site info 2020-02-27 13:57:06 +01:00
AArch64CollectLOH.cpp [AArch64CollectLOH] Debug insts should not break LOH collection [14/14] 2020-04-22 17:03:41 -07:00
AArch64Combine.td [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
AArch64CompressJumpTables.cpp [Alignment][NFC] Deprecate Align::None() 2020-01-24 12:53:58 +01:00
AArch64CondBrTuning.cpp [AArch64CondBrTuning] Ignore debug insts when scanning for NZCV clobbers [10/14] 2020-04-22 17:03:40 -07:00
AArch64ConditionOptimizer.cpp AArch64: Remove reversedInstructionsWithoutDebug helper 2020-04-24 11:28:17 -07:00
AArch64ConditionalCompares.cpp [AArch64ConditionalCompares] Ignore debug insts in findConvertibleCompare [8/14] 2020-04-22 17:03:40 -07:00
AArch64DeadRegisterDefinitionsPass.cpp
AArch64ExpandImm.cpp
AArch64ExpandImm.h
AArch64ExpandPseudoInsts.cpp [AArch64][SVE] Add support for spilling/filling ZPR2/3/4 2020-05-28 10:02:57 +00:00
AArch64FalkorHWPFFix.cpp [TargetRegisterInfo] Default trackLivenessAfterRegAlloc() to true 2020-01-19 14:20:37 -08:00
AArch64FastISel.cpp [CodeGen] Use Align in MachineConstantPool. 2020-05-12 10:06:40 -07:00
AArch64FrameLowering.cpp [MC] Change MCCFIInstruction::createDefCfaOffset to cfiDefCfaOffset which does not negate Offset 2020-05-22 17:07:11 -07:00
AArch64FrameLowering.h CodeGen: Use Register in TargetFrameLowering 2020-04-07 17:07:44 -04:00
AArch64GenRegisterBankInfo.def
AArch64ISelDAGToDAG.cpp [AArch64][BFloat] add BFloat instruction support for AArch64 2020-05-27 15:36:54 +01:00
AArch64ISelLowering.cpp [AArch64][BFloat] add BFloat instruction support for AArch64 2020-05-27 15:36:54 +01:00
AArch64ISelLowering.h [AArch64][SVE] Implement AArch64ISD::SETCC_PRED 2020-05-15 11:53:21 -07:00
AArch64InstrAtomics.td DAG: Use TargetConstant for FENCE operands 2020-01-02 17:16:10 -05:00
AArch64InstrFormats.td [AArch64][BFloat] basic AArch64 bfloat support 2020-05-27 15:26:40 +01:00
AArch64InstrInfo.cpp [AArch64][SVE] Add support for spilling/filling ZPR2/3/4 2020-05-28 10:02:57 +00:00
AArch64InstrInfo.h [AArch64CondBrTuning] Ignore debug insts when scanning for NZCV clobbers [10/14] 2020-04-22 17:03:40 -07:00
AArch64InstrInfo.td [AArch64][BFloat] add BFloat instruction support for AArch64 2020-05-27 15:36:54 +01:00
AArch64InstructionSelector.cpp [AArch64][GlobalISel] Do not modify predicate when optimizing G_ICMP 2020-05-26 17:51:08 -07:00
AArch64LegalizerInfo.cpp GlobalISel: Merge G_PTR_MASK with llvm.ptrmask intrinsic 2020-05-26 11:48:13 -04:00
AArch64LegalizerInfo.h GlobalISel: Add observer argument to legalizeIntrinsic 2020-01-29 18:33:45 -05:00
AArch64LoadStoreOptimizer.cpp [llvm][CodeGen] Check for memory instructions when querying for alias status 2020-04-24 22:54:46 +02:00
AArch64MCInstLower.cpp
AArch64MCInstLower.h
AArch64MachineFunctionInfo.cpp MachineFunctionInfo for AArch64 in MIR 2020-04-17 15:16:59 -07:00
AArch64MachineFunctionInfo.h [MachineOutliner] Annotation for outlined functions in AArch64 2020-04-20 13:33:31 -07:00
AArch64MacroFusion.cpp
AArch64MacroFusion.h
AArch64PBQPRegAlloc.cpp
AArch64PBQPRegAlloc.h
AArch64PerfectShuffle.h
AArch64PfmCounters.td
AArch64PostLegalizerCombiner.cpp [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
AArch64PreLegalizerCombiner.cpp [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
AArch64PromoteConstant.cpp [AArch64] Don't promote constants with float ConstantExpr. 2020-05-13 23:31:47 +01:00
AArch64RedundantCopyElimination.cpp
AArch64RegisterBankInfo.cpp [AArch64][FIX] FPR16_lo for f16 indexed patterns. 2020-04-23 23:44:56 +01:00
AArch64RegisterBankInfo.h GlobalISel: Add type argument to getRegBankFromRegClass 2020-01-03 16:25:10 -05:00
AArch64RegisterBanks.td
AArch64RegisterInfo.cpp [AArch64] Provide Darwin variants of most calling conventions 2020-05-20 16:03:48 -07:00
AArch64RegisterInfo.h [AArch64] Provide Darwin variants of most calling conventions 2020-05-20 16:03:48 -07:00
AArch64RegisterInfo.td [AArch64][BFloat] basic AArch64 bfloat support 2020-05-27 15:26:40 +01:00
AArch64SIMDInstrOpt.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
AArch64SVEInstrInfo.td [AArch64][SVE] Add support for spilling/filling ZPR2/3/4 2020-05-28 10:02:57 +00:00
AArch64SchedA53.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedA57.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedExynosM3.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedExynosM4.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedExynosM5.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedFalkor.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedFalkorDetails.td [AArch64] Add BIT/BIF support. 2020-02-14 14:19:39 +00:00
AArch64SchedKryo.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedKryoDetails.td [AArch64] Add BIT/BIF support. 2020-02-14 14:19:39 +00:00
AArch64SchedPredExynos.td [AArch64] Add new scheduling predicates 2019-11-11 15:02:51 -06:00
AArch64SchedPredicates.td [NFC] [AArch64] Fix wrong documentation for IsStoreRegOffsetOp 2019-11-23 19:11:31 +01:00
AArch64SchedThunderX.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedThunderX2T99.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SchedThunderX3T110.td [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp [Alignment][NFC] Transitionning more getMachineMemOperand call sites 2020-03-31 11:04:10 +00:00
AArch64SelectionDAGInfo.h
AArch64SpeculationHardening.cpp Prune a LegacyDivergenceAnalysis and MachineLoopInfo include each 2019-10-19 01:31:09 +00:00
AArch64StackOffset.h Explicitly include <cassert> when using assert 2020-03-02 22:45:28 +01:00
AArch64StackTagging.cpp AllocaInst should store Align instead of MaybeAlign. 2020-05-16 14:53:16 -07:00
AArch64StackTaggingPreRA.cpp MTE: add more unchecked instructions. 2019-11-19 11:19:53 -08:00
AArch64StorePairSuppress.cpp Add OffsetIsScalable to getMemOperandWithOffset 2020-02-18 15:53:29 +00:00
AArch64Subtarget.cpp [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64Subtarget.h [AARch64] Add Marvell ThunderX3T110 support 2020-05-13 16:58:51 -07:00
AArch64SystemOperands.td [AArch64] Remove inexistent system register ERXTS_EL1 2020-04-29 16:43:48 +01:00
AArch64TargetMachine.cpp [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
AArch64TargetMachine.h MachineFunctionInfo for AArch64 in MIR 2020-04-17 15:16:59 -07:00
AArch64TargetObjectFile.cpp [X86] Reland D71360 Clean up UseInitArray initialization for X86ELFTargetObjectFile 2020-03-20 21:57:34 -07:00
AArch64TargetObjectFile.h
AArch64TargetTransformInfo.cpp [CostModel] Unify getCastInstrCost 2020-05-26 11:29:57 +01:00
AArch64TargetTransformInfo.h [NFC][CostModel] Add TargetCostKind to relevant APIs 2020-05-05 10:35:54 +01:00
CMakeLists.txt [AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine. 2020-05-21 18:47:32 -07:00
LLVMBuild.txt Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
SVEInstrFormats.td [llvm][sve] Intrinsics for SVE sudot and usdot instructions. 2020-05-18 22:02:19 +00:00
SVEIntrinsicOpts.cpp [SVEIntrinsicOpts] NFC: Remove unused isReinterpretFromBool for no-assert builds 2020-04-21 09:49:22 +01:00