LLVM: llvm::MCResourceInfo Class Reference (original) (raw)
#include "[Target/AMDGPU/AMDGPUMCResourceInfo.h](AMDGPUMCResourceInfo%5F8h%5Fsource.html)"
Definition at line 28 of file AMDGPUMCResourceInfo.h.
◆ ResourceInfoKind
| Enumerator |
|---|
| RIK_NumVGPR |
| RIK_NumAGPR |
| RIK_NumSGPR |
| RIK_NumNamedBarrier |
| RIK_PrivateSegSize |
| RIK_UsesVCC |
| RIK_UsesFlatScratch |
| RIK_HasDynSizedStack |
| RIK_HasRecursion |
| RIK_HasIndirectCall |
Definition at line 30 of file AMDGPUMCResourceInfo.h.
| llvm::MCResourceInfo::MCResourceInfo ( ) | default |
|---|
◆ addMaxAGPRCandidate()
| void llvm::MCResourceInfo::addMaxAGPRCandidate ( int32_t candidate) | inline |
|---|
◆ addMaxNamedBarrierCandidate()
| void llvm::MCResourceInfo::addMaxNamedBarrierCandidate ( int32_t candidate) | inline |
|---|
◆ addMaxSGPRCandidate()
| void llvm::MCResourceInfo::addMaxSGPRCandidate ( int32_t candidate) | inline |
|---|
◆ addMaxVGPRCandidate()
| void llvm::MCResourceInfo::addMaxVGPRCandidate ( int32_t candidate) | inline |
|---|
◆ createTotalNumSGPRs()
Definition at line 400 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCBinaryExpr::createAdd(), llvm::AMDGPUMCExpr::createExtraSGPRs(), llvm::MachineFunction::getFunction(), llvm::MCSymbol::getName(), llvm::TargetMachine::getSymbol(), getSymRefExpr(), llvm::MachineFunction::getTarget(), llvm::GlobalValue::hasLocalLinkage(), RIK_NumSGPR, RIK_UsesFlatScratch, and RIK_UsesVCC.
◆ createTotalNumVGPRs()
◆ finalize()
| void MCResourceInfo::finalize | ( | MCContext & | OutContext | ) |
|---|
◆ gatherResourceInfo()
AMDGPUResourceUsageAnalysis gathers resource usage on a per-function granularity.
However, some resource info has to be assigned the call transitive maximum or accumulative. For example, if A calls B and B's VGPR usage exceeds A's, A should be assigned B's VGPR usage. Furthermore, functions with indirect calls should be assigned the module level maximum.
Definition at line 251 of file AMDGPUMCResourceInfo.cpp.
References addMaxAGPRCandidate(), addMaxNamedBarrierCandidate(), addMaxSGPRCandidate(), addMaxVGPRCandidate(), llvm::AMDGPUMCExpr::AGVK_Max, llvm::AMDGPUMCExpr::AGVK_Or, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::Callees, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::CalleeSegmentSize, llvm::MCConstantExpr::create(), llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createAdd(), llvm::AMDGPUMCExpr::createMax(), llvm::dbgs(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), getMaxAGPRSymbol(), getMaxNamedBarrierSymbol(), getMaxSGPRSymbol(), getMaxVGPRSymbol(), llvm::MCSymbol::getName(), getSymbol(), llvm::TargetMachine::getSymbol(), llvm::MachineFunction::getTarget(), llvm::MCSymbol::getVariableValue(), llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::HasDynamicallySizedStack, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::HasIndirectCall, llvm::GlobalValue::hasLocalLinkage(), llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::HasRecursion, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::AMDGPU::isEntryFunctionCC(), llvm::AMDGPUMCExpr::isSymbolUsedInExpression(), llvm::MCSymbol::isVariable(), LLVM_DEBUG, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::NumAGPR, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::NumExplicitSGPR, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::NumNamedBarrier, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::NumVGPR, llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::PrivateSegmentSize, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RIK_HasDynSizedStack, RIK_HasIndirectCall, RIK_HasRecursion, RIK_NumAGPR, RIK_NumNamedBarrier, RIK_NumSGPR, RIK_NumVGPR, RIK_PrivateSegSize, RIK_UsesFlatScratch, RIK_UsesVCC, llvm::MCSymbol::setVariableValue(), llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::UsesFlatScratch, and llvm::AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo::UsesVCC.
◆ getMaxAGPRSymbol()
◆ getMaxNamedBarrierSymbol()
◆ getMaxSGPRSymbol()
◆ getMaxVGPRSymbol()
◆ getSymbol()
Definition at line 27 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCContext::getOrCreateSymbol(), llvm::MCAsmInfo::getPrivateGlobalPrefix(), llvm_unreachable, RIK_HasDynSizedStack, RIK_HasIndirectCall, RIK_HasRecursion, RIK_NumAGPR, RIK_NumNamedBarrier, RIK_NumSGPR, RIK_NumVGPR, RIK_PrivateSegSize, RIK_UsesFlatScratch, and RIK_UsesVCC.
Referenced by gatherResourceInfo(), and getSymRefExpr().
◆ getSymRefExpr()
◆ reset()
| void MCResourceInfo::reset | ( | ) |
|---|
The documentation for this class was generated from the following files:
- lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
- lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp