diff options
author | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2019-04-24 17:03:15 +0000 |
---|---|---|
committer | Stanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com> | 2019-04-24 17:03:15 +0000 |
commit | cee607e4144e6391472e04235479969d9b0408a2 (patch) | |
tree | c8d40338463d9de3eeee008a50bb8e408cac584b /llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | |
parent | c60a4099a15ad83b19e5389284e1186a7dddd591 (diff) | |
download | bcm5719-llvm-cee607e4144e6391472e04235479969d9b0408a2.tar.gz bcm5719-llvm-cee607e4144e6391472e04235479969d9b0408a2.zip |
[AMDGPU] Add gfx1010 target definitions
Differential Revision: https://reviews.llvm.org/D61041
llvm-svn: 359113
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | 100 |
1 files changed, 95 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index df091655afd..f600fdde677 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -55,7 +55,8 @@ public: SOUTHERN_ISLANDS = 4, SEA_ISLANDS = 5, VOLCANIC_ISLANDS = 6, - GFX9 = 7 + GFX9 = 7, + GFX10 = 8 }; private: @@ -293,6 +294,7 @@ protected: bool UnalignedBufferAccess; bool HasApertureRegs; bool EnableXNACK; + bool EnableCuMode; bool TrapHandler; // Used as options. @@ -313,6 +315,7 @@ protected: bool CIInsts; bool GFX8Insts; bool GFX9Insts; + bool GFX10Insts; bool GFX7GFX8GFX9Insts; bool SGPRInitBug; bool HasSMemRealTime; @@ -329,24 +332,41 @@ protected: bool HasSDWAOutModsVOPC; bool HasDPP; bool HasR128A16; + bool HasNSAEncoding; bool HasDLInsts; bool HasDot1Insts; bool HasDot2Insts; bool EnableSRAMECC; bool DoesNotSupportSRAMECC; + bool HasNoSdstCMPX; + bool HasVscnt; + bool HasRegisterBanking; + bool HasVOP3Literal; + bool HasNoDataDepHazard; bool FlatAddressSpace; bool FlatInstOffsets; bool FlatGlobalInsts; bool FlatScratchInsts; + bool ScalarFlatScratchInsts; bool AddNoCarryInsts; bool HasUnpackedD16VMem; bool R600ALUInst; bool CaymanISA; bool CFALUBug; + bool LDSMisalignedBug; bool HasVertexCache; short TexVTXClauseSize; bool ScalarizeGlobal; + bool HasVcmpxPermlaneHazard; + bool HasVMEMtoScalarWriteHazard; + bool HasSMEMtoVectorWriteHazard; + bool HasInstFwdPrefetchBug; + bool HasVcmpxExecWARHazard; + bool HasLdsBranchVmemWARHazard; + bool HasNSAtoVMEMBug; + bool HasFlatSegmentOffsetBug; + // Dummy feature to use for assembler in tablegen. bool FeatureDisable; @@ -583,6 +603,10 @@ public: return EnableXNACK; } + bool isCuModeEnabled() const { + return EnableCuMode; + } + bool hasFlatAddressSpace() const { return FlatAddressSpace; } @@ -599,6 +623,14 @@ public: return FlatScratchInsts; } + bool hasScalarFlatScratchInsts() const { + return ScalarFlatScratchInsts; + } + + bool hasFlatSegmentOffsetBug() const { + return HasFlatSegmentOffsetBug; + } + bool hasFlatLgkmVMemCountInOrder() const { return getGeneration() > GFX9; } @@ -654,10 +686,6 @@ public: return HasSDWAOutModsVOPC; } - bool vmemWriteNeedsExpWaitcnt() const { - return getGeneration() < SEA_ISLANDS; - } - bool hasDLInsts() const { return HasDLInsts; } @@ -674,6 +702,30 @@ public: return EnableSRAMECC; } + bool hasNoSdstCMPX() const { + return HasNoSdstCMPX; + } + + bool hasVscnt() const { + return HasVscnt; + } + + bool hasRegisterBanking() const { + return HasRegisterBanking; + } + + bool hasVOP3Literal() const { + return HasVOP3Literal; + } + + bool hasNoDataDepHazard() const { + return HasNoDataDepHazard; + } + + bool vmemWriteNeedsExpWaitcnt() const { + return getGeneration() < SEA_ISLANDS; + } + // Scratch is allocated in 256 dword per wave blocks for the entire // wavefront. When viewed from the perspecive of an arbitrary workitem, this // is 4-byte aligned. @@ -782,6 +834,12 @@ public: return HasR128A16; } + bool hasNSAEncoding() const { + return HasNSAEncoding; + } + + bool hasMadF16() const; + bool enableSIScheduler() const { return EnableSIScheduler; } @@ -816,6 +874,38 @@ public: getGeneration() <= AMDGPUSubtarget::GFX9; } + bool hasVcmpxPermlaneHazard() const { + return HasVcmpxPermlaneHazard; + } + + bool hasVMEMtoScalarWriteHazard() const { + return HasVMEMtoScalarWriteHazard; + } + + bool hasSMEMtoVectorWriteHazard() const { + return HasSMEMtoVectorWriteHazard; + } + + bool hasLDSMisalignedBug() const { + return LDSMisalignedBug && !EnableCuMode; + } + + bool hasInstFwdPrefetchBug() const { + return HasInstFwdPrefetchBug; + } + + bool hasVcmpxExecWARHazard() const { + return HasVcmpxExecWARHazard; + } + + bool hasLdsBranchVmemWARHazard() const { + return HasLdsBranchVmemWARHazard; + } + + bool hasNSAtoVMEMBug() const { + return HasNSAtoVMEMBug; + } + /// Return the maximum number of waves per SIMD for kernels using \p SGPRs /// SGPRs unsigned getOccupancyWithNumSGPRs(unsigned SGPRs) const; |