class PhysicalRegisterUsageInfo

Declaration

class PhysicalRegisterUsageInfo : public ImmutablePass { /* full declaration omitted */ };

Description

ImmutablePass class - This class is used to provide information that does not need to be run. This is useful for things like target information and "basic" versions of AnalysisGroups.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:34

Inherits from: ImmutablePass

Member Variables

private DenseMap<const llvm::Function*, std::vector<uint32_t>> RegMasks
A Dense map from Function * to RegMask. In RegMask 0 means register used (clobbered) by function. and 1 means content of register will be preserved around function call.
private const llvm::LLVMTargetMachine* TM
public static char ID

Method Overview

Inherited from ImmutablePass:

Inherited from ModulePass:

Inherited from Pass:

Methods

PhysicalRegisterUsageInfo()

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:38

bool doFinalization(llvm::Module& M)

Description

doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:48

Parameters

llvm::Module& M

bool doInitialization(llvm::Module& M)

Description

doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:46

Parameters

llvm::Module& M

ArrayRef<uint32_t> getRegUsageInfo(
    const llvm::Function& FP)

Description

To query stored RegMask for given Function *, it will returns ane empty array if function is not known.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:56

Parameters

const llvm::Function& FP

void print(llvm::raw_ostream& OS,
           const llvm::Module* M = nullptr) const

Description

print - Print out the internal state of the pass. This is called by Analyze to print out the contents of an analysis. Otherwise it is not necessary to implement this method. Beware that the module pointer MAY be null. This automatically forwards to a virtual function that does not provide the Module* in case the analysis doesn't need it it can just be ignored.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:58

Parameters

llvm::raw_ostream& OS
const llvm::Module* M = nullptr

void setTargetMachine(
    const llvm::LLVMTargetMachine& TM)

Description

Set TargetMachine which is used to print analysis.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:44

Parameters

const llvm::LLVMTargetMachine& TM

void storeUpdateRegUsageInfo(
    const llvm::Function& FP,
    ArrayRef<uint32_t> RegMask)

Description

To store RegMask for given Function *.

Declared at: llvm/include/llvm/CodeGen/RegisterUsageInfo.h:51

Parameters

const llvm::Function& FP
ArrayRef<uint32_t> RegMask