diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-02-27 08:53:55 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-02-27 08:53:55 +0000 |
commit | 9d82ee7526db4bcc79ef74e767a54155301a972f (patch) | |
tree | 30d88c749384b923538fea09713eb7092e65e525 /llvm/lib | |
parent | 274d34e72544cd252b53bd3ea77bb59e7b5acb88 (diff) | |
download | bcm5719-llvm-9d82ee7526db4bcc79ef74e767a54155301a972f.tar.gz bcm5719-llvm-9d82ee7526db4bcc79ef74e767a54155301a972f.zip |
AMDGPU: Split vi-insts subtarget feature
This will be more useful for marking builtins acceptable for which
subtargets.
llvm-svn: 262121
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPU.td | 16 | ||||
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp | 3 | ||||
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | 11 |
3 files changed, 24 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td index 145fadcee74..0975f97998a 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPU.td +++ b/llvm/lib/Target/AMDGPU/AMDGPU.td @@ -149,10 +149,16 @@ def FeatureCIInsts : SubtargetFeature<"ci-insts", "Additional intstructions for CI+" >; -def FeatureVIInsts : SubtargetFeature<"vi-insts", - "VIInsts", +def FeatureSMemRealTime : SubtargetFeature<"s-memrealtime", + "HasSMemRealTime", "true", - "Additional intstructions for VI+" + "Has s_memrealtime instruction" +>; + +def Feature16BitInsts : SubtargetFeature<"16-bit-insts", + "Has16BitInsts", + "true", + "Has i16/f16 instructions" >; //===------------------------------------------------------------===// @@ -314,7 +320,9 @@ def FeatureSeaIslands : SubtargetFeatureGeneration<"SEA_ISLANDS", def FeatureVolcanicIslands : SubtargetFeatureGeneration<"VOLCANIC_ISLANDS", [FeatureFP64, FeatureLocalMemorySize65536, FeatureWavefrontSize64, FeatureFlatAddressSpace, FeatureGCN, - FeatureGCN3Encoding, FeatureCIInsts, FeatureVIInsts] + FeatureGCN3Encoding, FeatureCIInsts, Feature16BitInsts, + FeatureSMemRealTime + ] >; //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index 91d1aec5c07..fed46fe3715 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -81,7 +81,8 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS, WavefrontSize(0), CFALUBug(false), LocalMemorySize(0), MaxPrivateElementSize(0), EnableVGPRSpilling(false), SGPRInitBug(false), IsGCN(false), - GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), VIInsts(false), + GCN1Encoding(false), GCN3Encoding(false), CIInsts(false), + HasSMemRealTime(false), Has16BitInsts(false), LDSBankCount(0), IsaVersion(ISAVersion0_0_0), EnableHugeScratchBuffer(false), EnableSIScheduler(false), FrameLowering(nullptr), diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index 787c04aef2d..b9874f8a186 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -88,7 +88,8 @@ private: bool GCN1Encoding; bool GCN3Encoding; bool CIInsts; - bool VIInsts; + bool HasSMemRealTime; + bool Has16BitInsts; bool FeatureDisable; int LDSBankCount; unsigned IsaVersion; @@ -169,6 +170,14 @@ public: return FlatAddressSpace; } + bool hasSMemRealTime() const { + return HasSMemRealTime; + } + + bool has16BitInsts() const { + return Has16BitInsts; + } + bool useFlatForGlobal() const { return FlatForGlobal; } |