LLVM: lib/Target/AMDGPU/AMDGPUMCResourceInfo.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMCRESOURCEINFO_H

16#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMCRESOURCEINFO_H

17

20

21namespace llvm {

22

27

29public:

42

43private:

44 int32_t MaxVGPR = 0;

45 int32_t MaxAGPR = 0;

46 int32_t MaxSGPR = 0;

47 int32_t MaxNamedBarrier = 0;

48

49

50

51

52 bool Finalized = false;

53

54 void assignResourceInfoExpr(int64_t localValue, ResourceInfoKind RIK,

59

60

61 void assignMaxRegs(MCContext &OutContext);

62

63

64

65

68

69public:

72 MaxVGPR = std::max(MaxVGPR, candidate);

73 }

75 MaxAGPR = std::max(MaxAGPR, candidate);

76 }

78 MaxSGPR = std::max(MaxSGPR, candidate);

79 }

81 MaxNamedBarrier = std::max(MaxNamedBarrier, candidate);

82 }

83

85 MCContext &OutContext, bool IsLocal);

88

90

91

92

94

99

100

101

102

103

104

109

113};

114}

115

116#endif

Analyzes how many registers and other resources are used by functions.

Context object for machine code objects.

Base class for the full range of assembler expressions which are needed for parsing.

MCSymbol * getMaxNamedBarrierSymbol(MCContext &OutContext)

void addMaxSGPRCandidate(int32_t candidate)

Definition AMDGPUMCResourceInfo.h:77

MCSymbol * getMaxSGPRSymbol(MCContext &OutContext)

const MCExpr * getSymRefExpr(StringRef FuncName, ResourceInfoKind RIK, MCContext &Ctx, bool IsLocal)

void addMaxNamedBarrierCandidate(int32_t candidate)

Definition AMDGPUMCResourceInfo.h:80

MCSymbol * getMaxAGPRSymbol(MCContext &OutContext)

const MCExpr * createTotalNumVGPRs(const MachineFunction &MF, MCContext &Ctx)

MCSymbol * getSymbol(StringRef FuncName, ResourceInfoKind RIK, MCContext &OutContext, bool IsLocal)

void addMaxAGPRCandidate(int32_t candidate)

Definition AMDGPUMCResourceInfo.h:74

MCSymbol * getMaxVGPRSymbol(MCContext &OutContext)

const MCExpr * createTotalNumSGPRs(const MachineFunction &MF, bool hasXnack, MCContext &Ctx)

void addMaxVGPRCandidate(int32_t candidate)

Definition AMDGPUMCResourceInfo.h:71

ResourceInfoKind

Definition AMDGPUMCResourceInfo.h:30

@ RIK_HasRecursion

Definition AMDGPUMCResourceInfo.h:39

@ RIK_PrivateSegSize

Definition AMDGPUMCResourceInfo.h:35

@ RIK_NumNamedBarrier

Definition AMDGPUMCResourceInfo.h:34

@ RIK_UsesVCC

Definition AMDGPUMCResourceInfo.h:36

@ RIK_NumAGPR

Definition AMDGPUMCResourceInfo.h:32

@ RIK_UsesFlatScratch

Definition AMDGPUMCResourceInfo.h:37

@ RIK_HasDynSizedStack

Definition AMDGPUMCResourceInfo.h:38

@ RIK_NumVGPR

Definition AMDGPUMCResourceInfo.h:31

@ RIK_HasIndirectCall

Definition AMDGPUMCResourceInfo.h:40

@ RIK_NumSGPR

Definition AMDGPUMCResourceInfo.h:33

void gatherResourceInfo(const MachineFunction &MF, const AMDGPUResourceUsageAnalysisWrapperPass::FunctionResourceInfo &FRI, MCContext &OutContext)

AMDGPUResourceUsageAnalysis gathers resource usage on a per-function granularity.

MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

StringRef - Represent a constant reference to a string, i.e.

This is an optimization pass for GlobalISel generic memory operations.

AMDGPUResourceUsageAnalysisImpl::SIFunctionResourceInfo FunctionResourceInfo