diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2021-08-22 19:00:43 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2021-11-13 20:39:49 +0000 | 
| commit | fe6060f10f634930ff71b7c50291ddc610da2475 (patch) | |
| tree | 1483580c790bd4d27b6500a7542b5ee00534d3cc /contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | |
| parent | b61bce17f346d79cecfd8f195a64b10f77be43b1 (diff) | |
| parent | 344a3780b2e33f6ca763666c380202b18aab72a3 (diff) | |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | 18 | 
1 files changed, 14 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp b/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp index 717145b7af53..0c743a77092c 100644 --- a/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp +++ b/contrib/llvm-project/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp @@ -28,12 +28,10 @@ AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF)    const Function &F = MF.getFunction();    Attribute MemBoundAttr = F.getFnAttribute("amdgpu-memory-bound"); -  MemoryBound = MemBoundAttr.isStringAttribute() && -                MemBoundAttr.getValueAsString() == "true"; +  MemoryBound = MemBoundAttr.getValueAsBool();    Attribute WaveLimitAttr = F.getFnAttribute("amdgpu-wave-limiter"); -  WaveLimiter = WaveLimitAttr.isStringAttribute() && -                WaveLimitAttr.getValueAsString() == "true"; +  WaveLimiter = WaveLimitAttr.getValueAsBool();    CallingConv::ID CC = F.getCallingConv();    if (CC == CallingConv::AMDGPU_KERNEL || CC == CallingConv::SPIR_KERNEL) @@ -64,6 +62,18 @@ unsigned AMDGPUMachineFunction::allocateLDSGlobal(const DataLayout &DL,    return Offset;  } +void AMDGPUMachineFunction::allocateModuleLDSGlobal(const Module *M) { +  if (isModuleEntryFunction()) { +    const GlobalVariable *GV = M->getNamedGlobal("llvm.amdgcn.module.lds"); +    if (GV) { +      unsigned Offset = allocateLDSGlobal(M->getDataLayout(), *GV); +      (void)Offset; +      assert(Offset == 0 && +             "Module LDS expected to be allocated before other LDS"); +    } +  } +} +  void AMDGPUMachineFunction::setDynLDSAlign(const DataLayout &DL,                                             const GlobalVariable &GV) {    assert(DL.getTypeAllocSize(GV.getValueType()).isZero());  | 
