|
LLVM 23.0.0git
|
#include "Target/AMDGPU/AMDGPUMCResourceInfo.h"
Public Types | |
| enum | ResourceInfoKind { RIK_NumVGPR , RIK_NumAGPR , RIK_NumSGPR , RIK_NumNamedBarrier , RIK_PrivateSegSize , RIK_UsesVCC , RIK_UsesFlatScratch , RIK_HasDynSizedStack , RIK_HasRecursion , RIK_HasIndirectCall } |
Definition at line 28 of file AMDGPUMCResourceInfo.h.
| 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.
|
default |
Referenced by reset().
|
inline |
Definition at line 74 of file AMDGPUMCResourceInfo.h.
Referenced by gatherResourceInfo().
|
inline |
Definition at line 80 of file AMDGPUMCResourceInfo.h.
Referenced by gatherResourceInfo().
|
inline |
Definition at line 77 of file AMDGPUMCResourceInfo.h.
Referenced by gatherResourceInfo().
|
inline |
Definition at line 71 of file AMDGPUMCResourceInfo.h.
Referenced by gatherResourceInfo().
| const MCExpr * MCResourceInfo::createTotalNumSGPRs | ( | const MachineFunction & | MF, |
| bool | hasXnack, | ||
| MCContext & | Ctx ) |
Definition at line 391 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCBinaryExpr::createAdd(), llvm::AMDGPUMCExpr::createExtraSGPRs(), llvm::MachineFunction::getFunction(), llvm::MCSymbol::getName(), llvm::TargetMachine::getSymbol(), getSymRefExpr(), llvm::MachineFunction::getTarget(), RIK_NumSGPR, RIK_UsesFlatScratch, and RIK_UsesVCC.
| const MCExpr * MCResourceInfo::createTotalNumVGPRs | ( | const MachineFunction & | MF, |
| MCContext & | Ctx ) |
Definition at line 382 of file AMDGPUMCResourceInfo.cpp.
References llvm::AMDGPUMCExpr::createTotalNumVGPR(), llvm::MachineFunction::getFunction(), llvm::MCSymbol::getName(), llvm::TargetMachine::getSymbol(), getSymRefExpr(), llvm::MachineFunction::getTarget(), RIK_NumAGPR, and RIK_NumVGPR.
| void MCResourceInfo::finalize | ( | MCContext & | OutContext | ) |
Definition at line 85 of file AMDGPUMCResourceInfo.cpp.
References assert().
| void MCResourceInfo::gatherResourceInfo | ( | const MachineFunction & | MF, |
| const AMDGPUResourceUsageAnalysisWrapperPass::FunctionResourceInfo & | FRI, | ||
| MCContext & | OutContext ) |
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 248 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::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.
Definition at line 95 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getOrCreateSymbol().
Referenced by gatherResourceInfo().
Definition at line 103 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getOrCreateSymbol().
Referenced by gatherResourceInfo().
Definition at line 99 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getOrCreateSymbol().
Referenced by gatherResourceInfo().
Definition at line 91 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getOrCreateSymbol().
Referenced by gatherResourceInfo().
| MCSymbol * MCResourceInfo::getSymbol | ( | StringRef | FuncName, |
| ResourceInfoKind | RIK, | ||
| MCContext & | OutContext ) |
Definition at line 27 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getInternalSymbolPrefix(), llvm::MCContext::getOrCreateSymbol(), 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().
| const MCExpr * MCResourceInfo::getSymRefExpr | ( | StringRef | FuncName, |
| ResourceInfoKind | RIK, | ||
| MCContext & | Ctx ) |
Definition at line 59 of file AMDGPUMCResourceInfo.cpp.
References llvm::MCSymbolRefExpr::create(), and getSymbol().
Referenced by createTotalNumSGPRs(), and createTotalNumVGPRs().
| void MCResourceInfo::reset | ( | ) |
Definition at line 83 of file AMDGPUMCResourceInfo.cpp.
References MCResourceInfo().