diff options
Diffstat (limited to 'gnu/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp')
| -rw-r--r-- | gnu/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/gnu/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp b/gnu/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp deleted file mode 100644 index 13b4b50149c..00000000000 --- a/gnu/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp +++ /dev/null @@ -1,65 +0,0 @@ -//===-- AMDGPUMachineFunctionInfo.cpp ---------------------------------------=// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "AMDGPUMachineFunction.h" -#include "AMDGPUSubtarget.h" -#include "AMDGPUPerfHintAnalysis.h" -#include "llvm/CodeGen/MachineModuleInfo.h" - -using namespace llvm; - -AMDGPUMachineFunction::AMDGPUMachineFunction(const MachineFunction &MF) : - MachineFunctionInfo(), - LocalMemoryObjects(), - ExplicitKernArgSize(0), - MaxKernArgAlign(0), - LDSSize(0), - IsEntryFunction(AMDGPU::isEntryFunctionCC(MF.getFunction().getCallingConv())), - NoSignedZerosFPMath(MF.getTarget().Options.NoSignedZerosFPMath), - MemoryBound(false), - WaveLimiter(false) { - const AMDGPUSubtarget &ST = AMDGPUSubtarget::get(MF); - - // FIXME: Should initialize KernArgSize based on ExplicitKernelArgOffset, - // except reserved size is not correctly aligned. - const Function &F = MF.getFunction(); - - if (auto *Resolver = MF.getMMI().getResolver()) { - if (AMDGPUPerfHintAnalysis *PHA = static_cast<AMDGPUPerfHintAnalysis*>( - Resolver->getAnalysisIfAvailable(&AMDGPUPerfHintAnalysisID, true))) { - MemoryBound = PHA->isMemoryBound(&F); - WaveLimiter = PHA->needsWaveLimiter(&F); - } - } - - CallingConv::ID CC = F.getCallingConv(); - if (CC == CallingConv::AMDGPU_KERNEL || CC == CallingConv::SPIR_KERNEL) - ExplicitKernArgSize = ST.getExplicitKernArgSize(F, MaxKernArgAlign); -} - -unsigned AMDGPUMachineFunction::allocateLDSGlobal(const DataLayout &DL, - const GlobalValue &GV) { - auto Entry = LocalMemoryObjects.insert(std::make_pair(&GV, 0)); - if (!Entry.second) - return Entry.first->second; - - unsigned Align = GV.getAlignment(); - if (Align == 0) - Align = DL.getABITypeAlignment(GV.getValueType()); - - /// TODO: We should sort these to minimize wasted space due to alignment - /// padding. Currently the padding is decided by the first encountered use - /// during lowering. - unsigned Offset = LDSSize = alignTo(LDSSize, Align); - - Entry.first->second = Offset; - LDSSize += DL.getTypeAllocSize(GV.getValueType()); - - return Offset; -} |
