mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
AMDGPU: Add new subtarget features for gfx9 flat instructions
Flat instructions gain an immediate offset, and 2 new sets of segment specific flat instructions are added. llvm-svn: 302729
This commit is contained in:
parent
530bc4ac68
commit
d3375cc250
@ -61,6 +61,24 @@ def FeatureFlatAddressSpace : SubtargetFeature<"flat-address-space",
|
||||
"Support flat address space"
|
||||
>;
|
||||
|
||||
def FeatureFlatInstOffsets : SubtargetFeature<"flat-inst-offsets",
|
||||
"FlatInstOffsets",
|
||||
"true",
|
||||
"Flat instructions have immediate offset addressing mode"
|
||||
>;
|
||||
|
||||
def FeatureFlatGlobalInsts : SubtargetFeature<"flat-global-insts",
|
||||
"FlatGlobalInsts",
|
||||
"true",
|
||||
"Have global_* flat memory instructions"
|
||||
>;
|
||||
|
||||
def FeatureFlatScratchInsts : SubtargetFeature<"flat-scratch-insts",
|
||||
"FlatScratchInsts",
|
||||
"true",
|
||||
"Have scratch_* flat memory instructions"
|
||||
>;
|
||||
|
||||
def FeatureUnalignedBufferAccess : SubtargetFeature<"unaligned-buffer-access",
|
||||
"UnalignedBufferAccess",
|
||||
"true",
|
||||
@ -407,7 +425,8 @@ def FeatureGFX9 : SubtargetFeatureGeneration<"GFX9",
|
||||
FeatureGCN3Encoding, FeatureCIInsts, Feature16BitInsts,
|
||||
FeatureSMemRealTime, FeatureScalarStores, FeatureInv2PiInlineImm,
|
||||
FeatureApertureRegs, FeatureGFX9Insts, FeatureVOP3P, FeatureVGPRIndexMode,
|
||||
FeatureFastFMAF32, FeatureDPP
|
||||
FeatureFastFMAF32, FeatureDPP,
|
||||
FeatureFlatInstOffsets, FeatureFlatGlobalInsts, FeatureFlatScratchInsts
|
||||
]
|
||||
>;
|
||||
|
||||
|
@ -125,6 +125,9 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS,
|
||||
HasSDWA(false),
|
||||
HasDPP(false),
|
||||
FlatAddressSpace(false),
|
||||
FlatInstOffsets(false),
|
||||
FlatGlobalInsts(false),
|
||||
FlatScratchInsts(false),
|
||||
|
||||
R600ALUInst(false),
|
||||
CaymanISA(false),
|
||||
|
@ -145,6 +145,9 @@ protected:
|
||||
bool HasSDWA;
|
||||
bool HasDPP;
|
||||
bool FlatAddressSpace;
|
||||
bool FlatInstOffsets;
|
||||
bool FlatGlobalInsts;
|
||||
bool FlatScratchInsts;
|
||||
bool R600ALUInst;
|
||||
bool CaymanISA;
|
||||
bool CFALUBug;
|
||||
@ -380,6 +383,18 @@ public:
|
||||
return FlatAddressSpace;
|
||||
}
|
||||
|
||||
bool hasFlatInstOffsets() const {
|
||||
return FlatInstOffsets;
|
||||
}
|
||||
|
||||
bool hasFlatGlobalInsts() const {
|
||||
return FlatGlobalInsts;
|
||||
}
|
||||
|
||||
bool hasFlatScratchInsts() const {
|
||||
return FlatScratchInsts;
|
||||
}
|
||||
|
||||
bool isMesaKernel(const MachineFunction &MF) const {
|
||||
return isMesa3DOS() && !AMDGPU::isShader(MF.getFunction()->getCallingConv());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user