llvm-project/llvm/lib/Target/AMDGPU
Joe Nash f6d7832f4c [AMDGPU] Refactor SOPC & SOPP .td for extension
We use the Real vs Pseudo instruction abstraction for other
types of instructions to facilitate changes in opcode
between gpu generations.
This patch introduces that abstraction to SOPC and SOPP.

Reviewed By: rampitec

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

Change-Id: I59d53c2c7058b49d05b60350f4062a9b542d3138
2020-10-21 12:35:52 -04:00
..
AsmParser AMDGPU: Update AMDHSA code object version handling 2020-10-14 13:04:27 -04:00
Disassembler [AMDGPU] Add MC layer support for v_fmac_legacy_f32 2020-10-13 21:57:33 +01:00
MCTargetDesc [AMDGPU] gfx1032 target 2020-10-15 12:41:18 -07:00
TargetInfo
Utils AMDGPU: Update AMDHSA code object version handling 2020-10-14 13:04:27 -04:00
AMDGPU.h AMDGPU: Remove SIFixupVectorISel pass 2020-08-15 12:11:51 -04:00
AMDGPU.td [AMDGPU] flat scratch ST addressing mode on gfx10 2020-10-19 15:29:52 -07:00
AMDGPUAliasAnalysis.cpp [amdgpu] Enhance AMDGPU AA. 2020-10-20 09:54:12 -04:00
AMDGPUAliasAnalysis.h Remove orphan AMDGPUAAResult::Aliases and AMDGPUAAResult::PathAliases declarations. NFC. 2020-06-25 16:00:44 +01:00
AMDGPUAlwaysInlinePass.cpp AMDGPU: Hack out noinline on functions using LDS globals 2020-04-02 14:12:07 -04:00
AMDGPUAnnotateKernelFeatures.cpp AMDGPU: Annotate functions that have stack objects 2020-05-19 18:51:00 -04:00
AMDGPUAnnotateUniformValues.cpp AMDGPU: Put inexpensive ops first in AMDGPUAnnotateUniformValues::visitLoadInst 2020-07-30 14:37:06 -07:00
AMDGPUArgumentUsageInfo.cpp AMDGPU/GlobalISel: Add types to special inputs 2020-07-06 17:00:55 -04:00
AMDGPUArgumentUsageInfo.h AMDGPU: Use MCRegister for preloaded arguments 2020-07-20 13:34:28 -04:00
AMDGPUAsmPrinter.cpp AMDGPU: Lower the threshold reported for maximum stack size exceeded 2020-10-21 12:06:27 -04:00
AMDGPUAsmPrinter.h [AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI* 2020-02-13 22:08:55 -08:00
AMDGPUAtomicOptimizer.cpp [AMDGPU] Do not generate mul with 1 in AMDGPU Atomic Optimizer 2020-09-30 11:09:18 +02:00
AMDGPUCallLowering.cpp AMDGPU/GlobalISel: Stop using G_EXTRACT in argument lowering 2020-08-06 09:55:35 -04:00
AMDGPUCallLowering.h AMDGPU/GlobalISel: Mark GlobalISel classes as final 2020-07-28 11:42:17 -04:00
AMDGPUCallingConv.td [AMDGPU] Introduce more scratch registers in the ABI. 2020-05-05 23:02:58 +05:30
AMDGPUCodeGenPrepare.cpp SelectionDAG.h - remove unnecessary FunctionLoweringInfo.h include. NFCI. 2020-09-03 18:33:25 +01:00
AMDGPUCombine.td [GlobalISel] Rewrite the elide-br-by-swapping-icmp-ops combine to do less. 2020-09-09 13:08:16 -07:00
AMDGPUExportClustering.cpp [AMDGPU] Strengthen export cluster ordering 2020-05-13 23:07:37 +09:00
AMDGPUExportClustering.h [AMDGPU] Cluster shader exports 2020-05-07 19:05:38 +09:00
AMDGPUFeatures.td AMDGPU: Change internal tracking of wave size 2020-06-01 17:55:08 -04:00
AMDGPUFixFunctionBitcasts.cpp AMDGPU.h - reduce TargetMachine.h include. NFC. 2020-05-24 15:27:41 +01:00
AMDGPUFrameLowering.cpp
AMDGPUFrameLowering.h
AMDGPUGISel.td [AMDGPU][GlobalISel] Fix 96 and 128 local loads and stores 2020-08-21 12:26:31 +02:00
AMDGPUGenRegisterBankInfo.def AMDGPU/GlobalISel: Fix missing 256-bit AGPR mapping 2020-08-17 09:53:26 -04:00
AMDGPUGlobalISelUtils.cpp AMDGPU/GlobalISel: Select G_SHUFFLE_VECTOR 2020-02-21 13:35:40 -05:00
AMDGPUGlobalISelUtils.h [AMDGPU] Use tablegen for argument indices 2020-10-05 11:50:52 +02:00
AMDGPUHSAMetadataStreamer.cpp AMDGPU: Start interpreting byref on kernel arguments 2020-07-21 18:11:22 -04:00
AMDGPUHSAMetadataStreamer.h AMDGPU: Start interpreting byref on kernel arguments 2020-07-21 18:11:22 -04:00
AMDGPUISelDAGToDAG.cpp [AMDGPU] Simplify getNumFlatOffsetBits. NFC. 2020-10-01 15:24:09 +01:00
AMDGPUISelLowering.cpp [AMDGPU] Remove MUL_LOHI_U24/MUL_LOHI_I24 2020-10-19 19:15:34 +01:00
AMDGPUISelLowering.h [AMDGPU] Remove unused declaration. NFC. 2020-10-20 16:31:42 +01:00
AMDGPUInline.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
AMDGPUInstCombineIntrinsic.cpp Internalize functions from various tools. NFC 2020-09-26 15:57:13 -07:00
AMDGPUInstrInfo.cpp [AMDGPU] Remove AMDGPURegisterInfo 2020-02-11 11:13:38 -08:00
AMDGPUInstrInfo.h [AMDGPU] Use tablegen for argument indices 2020-10-05 11:50:52 +02:00
AMDGPUInstrInfo.td AMDGPU: Remove intermediate DAG node for trig_preop intrinsic 2020-06-16 21:06:25 -04:00
AMDGPUInstructionSelector.cpp [AMDGPU] Implement hardware bug workaround for image instructions 2020-10-07 07:39:52 -04:00
AMDGPUInstructionSelector.h [AMDGPU] global-isel support for RT 2020-09-24 10:29:45 -07:00
AMDGPUInstructions.td [AMDGPU] Split R600 and GCN bfe patterns 2020-10-05 09:55:10 +01:00
AMDGPULegalizerInfo.cpp [AMDGPU] Remove fix up operand from SI_ELSE 2020-10-20 19:15:21 +09:00
AMDGPULegalizerInfo.h [AMDGPU] Implement hardware bug workaround for image instructions 2020-10-07 07:39:52 -04:00
AMDGPULibCalls.cpp Use llvm::is_contained where appropriate (NFC) 2020-07-27 10:20:44 -07:00
AMDGPULibFunc.cpp [SVE] Eliminate calls to default-false VectorType::get() from AMDGPU 2020-05-29 17:54:17 -07:00
AMDGPULibFunc.h AMDGPULibFunc - fix include order. NFC. 2020-05-24 13:25:59 +01:00
AMDGPULowerIntrinsics.cpp AMDGPU: Use caller subtarget, not intrinsic declaration 2020-08-27 16:42:09 -04:00
AMDGPULowerKernelArguments.cpp AMDGPU: Start interpreting byref on kernel arguments 2020-07-21 18:11:22 -04:00
AMDGPULowerKernelAttributes.cpp
AMDGPUMCInstLower.cpp [AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI* 2020-02-13 22:08:55 -08:00
AMDGPUMachineCFGStructurizer.cpp [AMDGPU] Apply llvm-prefer-register-over-unsigned from clang-tidy 2020-08-21 10:14:35 +01:00
AMDGPUMachineFunction.cpp [amdgpu] Add codegen support for HIP dynamic shared memory. 2020-08-20 21:29:18 -04:00
AMDGPUMachineFunction.h [amdgpu] Add codegen support for HIP dynamic shared memory. 2020-08-20 21:29:18 -04:00
AMDGPUMachineModuleInfo.cpp
AMDGPUMachineModuleInfo.h
AMDGPUMacroFusion.cpp [AMDGPU] Extend macro fusion for ADDC and SUBB to SUBBREV 2020-03-11 17:59:21 +00:00
AMDGPUMacroFusion.h
AMDGPUOpenCLEnqueuedBlockLowering.cpp Avoid SmallString.h include in MD5.h, NFC 2020-02-26 09:10:24 -08:00
AMDGPUPTNote.h
AMDGPUPerfHintAnalysis.cpp AMDGPU.h - reduce TargetMachine.h include. NFC. 2020-05-24 15:27:41 +01:00
AMDGPUPerfHintAnalysis.h
AMDGPUPostLegalizerCombiner.cpp AMDGPU/GlobalISel: Fix using post-legal combiner without LegalizerInfo 2020-08-17 09:19:22 -04:00
AMDGPUPreLegalizerCombiner.cpp AMDGPU/GlobalISel: Mark GlobalISel classes as final 2020-07-28 11:42:17 -04:00
AMDGPUPrintfRuntimeBinding.cpp AMDGPUPrintfRuntimeBinding.cpp - drop unnecessary casts/dyn_casts. NFCI. 2020-09-15 14:49:04 +01:00
AMDGPUPromoteAlloca.cpp [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
AMDGPUPropagateAttributes.cpp AMDGPU: Propagate amdgpu-flat-work-group-size attributes 2020-10-21 12:06:24 -04:00
AMDGPURegBankCombiner.cpp AMDGPU/GlobalISel: Mark GlobalISel classes as final 2020-07-28 11:42:17 -04:00
AMDGPURegisterBankInfo.cpp [AMDGPU] Add new llvm.amdgcn.fma.legacy intrinsic 2020-10-16 17:10:21 +01:00
AMDGPURegisterBankInfo.h AMDGPU/GlobalISel: Start trying to handle AGPR bank 2020-08-06 12:39:50 -04:00
AMDGPURegisterBanks.td AMDGPU/GlobalISel: Add SReg_96 to SGPRRegBank 2020-07-28 16:49:55 -04:00
AMDGPURewriteOutArguments.cpp [SVE] Remove usages of VectorType::getNumElements() from AMDGPU 2020-05-13 15:57:55 -07:00
AMDGPUSearchableTables.td AMDGPU: Define raw/struct variants of buffer atomic fadd 2020-08-06 13:36:19 -04:00
AMDGPUSubtarget.cpp AMDGPU: Update AMDHSA code object version handling 2020-10-14 13:04:27 -04:00
AMDGPUSubtarget.h AMDGPU: Lower the threshold reported for maximum stack size exceeded 2020-10-21 12:06:27 -04:00
AMDGPUTargetMachine.cpp [HazardRec] Allow inserting multiple wait-states simultaneously 2020-10-20 17:03:47 -07:00
AMDGPUTargetMachine.h Support addrspacecast initializers with isNoopAddrSpaceCast 2020-07-31 10:42:43 -04:00
AMDGPUTargetObjectFile.cpp
AMDGPUTargetObjectFile.h AMDGPUTargetObjectFile.h - remove unnecessary includes. NFC. 2020-05-24 13:57:02 +01:00
AMDGPUTargetTransformInfo.cpp Change LoopInfo::empty to isInnermost after D82895 2020-09-22 14:07:40 -07:00
AMDGPUTargetTransformInfo.h AMDGPU: Update AMDHSA code object version handling 2020-10-14 13:04:27 -04:00
AMDGPUUnifyDivergentExitNodes.cpp Reland "[NFC] SimplifyCFGOptions: drop multi-parameter ctor, use default member-init" 2020-07-16 13:40:01 +03:00
AMDGPUUnifyMetadata.cpp Use llvm::is_contained where appropriate (NFC) 2020-07-27 10:20:44 -07:00
AMDILCFGStructurizer.cpp
AMDKernelCodeT.h
BUFInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
CMakeLists.txt AMDGPU: Remove SIFixupVectorISel pass 2020-08-15 12:11:51 -04:00
CaymanInstructions.td [AMDGPU] Fix and simplify AMDGPUTargetLowering::LowerUDIVREM 2020-07-08 19:14:49 +01:00
DSInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
EvergreenInstructions.td [AMDGPU] Split R600 and GCN bfe patterns 2020-10-05 09:55:10 +01:00
FLATInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
GCNDPPCombine.cpp AMDGPU: Rename add/sub with carry out instructions 2020-07-16 13:16:30 -04:00
GCNHazardRecognizer.cpp [AMDGPU] Avoid inserting noops during scheduling 2020-10-20 17:11:36 -07:00
GCNHazardRecognizer.h [AMDGPU] prefer non-mfma in post-RA schedule 2020-07-29 12:17:50 -07:00
GCNILPSched.cpp
GCNIterativeScheduler.cpp
GCNIterativeScheduler.h
GCNMinRegStrategy.cpp Revert "[NFC][ScheduleDAG] Remove unused EntrySU SUnit" 2020-09-21 13:33:05 +02:00
GCNNSAReassign.cpp [NFC][MC] Use MCRegister in LiveRangeMatrix 2020-10-12 08:54:36 -07:00
GCNProcessors.td [AMDGPU] gfx1032 target 2020-10-15 12:41:18 -07:00
GCNRegBankReassign.cpp [NFC][MC] Use MCRegister in LiveRangeMatrix 2020-10-12 08:54:36 -07:00
GCNRegPressure.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
GCNRegPressure.h [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
GCNSchedStrategy.cpp [AMDGPU] Fix not rescheduling without clustering 2020-08-07 11:15:58 -07:00
GCNSchedStrategy.h
InstCombineTables.td [InstCombine] Move target-specific inst combining 2020-07-22 15:59:49 +02:00
LLVMBuild.txt
MIMGInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
R600.td
R600AsmPrinter.cpp [MC] Add MCStreamer::emitInt{8,16,32,64} 2020-02-29 09:40:21 -08:00
R600AsmPrinter.h [AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI* 2020-02-13 22:08:55 -08:00
R600ClauseMergePass.cpp
R600ControlFlowFinalizer.cpp [AMDGPU] Make use of divideCeil. NFC. 2020-03-26 16:11:35 +00:00
R600Defines.h
R600EmitClauseMarkers.cpp
R600ExpandSpecialInstrs.cpp
R600FrameLowering.cpp CodeGen: Use Register in TargetFrameLowering 2020-04-07 17:07:44 -04:00
R600FrameLowering.h CodeGen: Use Register in TargetFrameLowering 2020-04-07 17:07:44 -04:00
R600ISelLowering.cpp [AMDGPU] Use cast instead of dyn_cast 2020-09-24 15:20:49 +01:00
R600ISelLowering.h
R600InstrFormats.td
R600InstrInfo.cpp Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate 2020-10-21 11:52:47 +01:00
R600InstrInfo.h Add "SkipDead" parameter to TargetInstrInfo::DefinesPredicate 2020-10-21 11:52:47 +01:00
R600Instructions.td [NFC] Remove unused GetUnderlyingObject paramenter 2020-07-31 02:10:03 -07:00
R600MachineFunctionInfo.cpp
R600MachineFunctionInfo.h
R600MachineScheduler.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
R600MachineScheduler.h [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
R600OpenCLImageTypeLoweringPass.cpp
R600OptimizeVectorRegisters.cpp AMDGPU: Use Register 2020-06-30 12:13:08 -04:00
R600Packetizer.cpp
R600Processors.td
R600RegisterInfo.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
R600RegisterInfo.h [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
R600RegisterInfo.td [TBLGEN] Allow to override RC weight 2020-02-14 15:49:52 -08:00
R600Schedule.td
R700Instructions.td
SIAddIMGInit.cpp [AMDGPU] gfx1030 RT support 2020-09-16 11:40:58 -07:00
SIAnnotateControlFlow.cpp
SIDefines.h [AMDGPU][MC] Corrected parser to avoid generation of excessive error messages 2020-09-02 19:42:18 +03:00
SIFixSGPRCopies.cpp [AMDGPU] Fix merging m0 inits 2020-09-23 09:13:43 +02:00
SIFixVGPRCopies.cpp
SIFoldOperands.cpp [AMDGPU] More codegen patterns for v2i16/v2f16 build_vector 2020-09-22 10:41:38 +01:00
SIFormMemoryClauses.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
SIFrameLowering.cpp [AMDGPU] Use isLegalMUBUFImmOffset more 2020-10-08 14:31:44 +02:00
SIFrameLowering.h AMDGPU: Correct prolog SP initialization logic 2020-08-05 15:47:53 -04:00
SIISelLowering.cpp [AMDGPU] Do not generate S_CMP_LG_U64 on gfx7 2020-10-19 14:44:31 +02:00
SIISelLowering.h [AMDGPU] Implement hardware bug workaround for image instructions 2020-10-07 07:39:52 -04:00
SIInsertHardClauses.cpp [AMDGPU/MemOpsCluster] Let mem ops clustering logic also consider number of clustered bytes 2020-06-01 22:52:34 +05:30
SIInsertSkips.cpp [AMDGPU] SIInsertSkips: Refactor early exit block creation 2020-10-06 09:44:55 +09:00
SIInsertWaitcnts.cpp [AMDGPU] Optimize waitcnt insertion for flat memory operations 2020-10-20 22:55:12 +00:00
SIInstrFormats.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
SIInstrInfo.cpp [HazardRec] Allow inserting multiple wait-states simultaneously 2020-10-20 17:03:47 -07:00
SIInstrInfo.h [HazardRec] Allow inserting multiple wait-states simultaneously 2020-10-20 17:03:47 -07:00
SIInstrInfo.td [AMDGPU] Refactor SOPC & SOPP .td for extension 2020-10-21 12:35:52 -04:00
SIInstructions.td [AMDGPU] Remove fix up operand from SI_ELSE 2020-10-20 19:15:21 +09:00
SILoadStoreOptimizer.cpp [AMDGPU] gfx1030 RT support 2020-09-16 11:40:58 -07:00
SILowerControlFlow.cpp [AMDGPU] Remove fix up operand from SI_ELSE 2020-10-20 19:15:21 +09:00
SILowerI1Copies.cpp [AMDGPU] Apply llvm-prefer-register-over-unsigned from clang-tidy 2020-08-21 10:14:35 +01:00
SILowerSGPRSpills.cpp [AMDGPU] Remove getAllVGPR32() which cannot handle Accum VGPRs properly 2020-10-20 23:15:24 +05:30
SIMachineFunctionInfo.cpp [amdgpu] Add codegen support for HIP dynamic shared memory. 2020-08-20 21:29:18 -04:00
SIMachineFunctionInfo.h [amdgpu] Add codegen support for HIP dynamic shared memory. 2020-08-20 21:29:18 -04:00
SIMachineScheduler.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
SIMachineScheduler.h Revert "[NFC][ScheduleDAG] Remove unused EntrySU SUnit" 2020-09-21 13:33:05 +02:00
SIMemoryLegalizer.cpp [AMDGPU] Correct comment typo in SIMemoryLegaliizer.cpp 2020-10-19 18:50:28 +00:00
SIModeRegister.cpp [AMDGPU] Enable scheduling around FP MODE-setting instructions 2020-09-16 16:10:47 +01:00
SIOptimizeExecMasking.cpp AMDGPU: Don't sometimes allow instructions before lowered si_end_cf 2020-09-18 13:43:01 -04:00
SIOptimizeExecMaskingPreRA.cpp [AMDGPU] Remove fix up operand from SI_ELSE 2020-10-20 19:15:21 +09:00
SIPeepholeSDWA.cpp [AMDGPU] Remove uses of Register::isPhysicalRegister/isVirtualRegister 2020-08-20 17:59:11 +01:00
SIPostRABundler.cpp AMDGPU: Do not bundle inline asm 2020-06-14 13:24:50 -04:00
SIPreAllocateWWMRegs.cpp [NFC][MC] Use MCRegister in LiveRangeMatrix 2020-10-12 08:54:36 -07:00
SIPreEmitPeephole.cpp [AMDGPU] Fix missed SI_RETURN_TO_EPILOG in pre-emit peephole 2020-08-13 21:52:41 +09:00
SIProgramInfo.h
SIRegisterInfo.cpp [AMDGPU] Fix off by one in assert 2020-10-21 12:37:52 +02:00
SIRegisterInfo.h [AMDGPU][NFC] Fix missing size in comment 2020-10-21 11:38:21 +09:00
SIRegisterInfo.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
SIRemoveShortExecBranches.cpp
SISchedule.td [AMDGPU] Add XDL resource to scheduling model 2020-09-14 13:48:54 -07:00
SIShrinkInstructions.cpp [AMDGPU] Avoid inserting noops during scheduling 2020-10-20 17:11:36 -07:00
SIWholeQuadMode.cpp [AMDGPU] Remove fix up operand from SI_ELSE 2020-10-20 19:15:21 +09:00
SMInstructions.td AMDGPU: Remove mayLoad/mayStore from some side effecting intrinsics 2020-06-18 14:12:19 -04:00
SOPInstructions.td [AMDGPU] Refactor SOPC & SOPP .td for extension 2020-10-21 12:35:52 -04:00
VIInstrFormats.td
VOP1Instructions.td [AMDGPU] Removed s_mov_regrd and mov_fed opcodes 2020-07-17 19:52:54 +03:00
VOP2Instructions.td [AMDGPU] Add MC layer support for v_fmac_legacy_f32 2020-10-13 21:57:33 +01:00
VOP3Instructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
VOP3PInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00
VOPCInstructions.td AMDGPU: Start adding MODE register uses to instructions 2020-05-27 14:47:00 -04:00
VOPInstructions.td [AMDGPU][TableGen] Make more use of !ne !not !and !or. NFC. 2020-10-21 09:56:43 +01:00