LLVM: llvm::GlobalVarSummary Class Reference (original) (raw)

Global variable summary information to aid decisions and implementation of importing. More...

#include "[llvm/IR/ModuleSummaryIndex.h](ModuleSummaryIndex%5F8h%5Fsource.html)"

Public Member Functions
GlobalVarSummary (GVFlags Flags, GVarFlags VarFlags, SmallVectorImpl< ValueInfo > &&Refs)
GVarFlags varflags () const
void setReadOnly (bool RO)
void setWriteOnly (bool WO)
bool maybeReadOnly () const
bool maybeWriteOnly () const
bool isConstant () const
void setVCallVisibility (GlobalObject::VCallVisibility Vis)
GlobalObject::VCallVisibility getVCallVisibility () const
void setVTableFuncs (VTableFuncList Funcs)
ArrayRef< VirtFuncOffset > vTableFuncs () const
Public Member Functions inherited from llvm::GlobalValueSummary
virtual ~GlobalValueSummary ()=default
GlobalValue::GUID getOriginalName () const
Returns the hash of the original name, it is identical to the GUID for externally visible symbols, but not for local ones.
void setOriginalName (GlobalValue::GUID Name)
Initialize the original name hash in this summary.
SummaryKind getSummaryKind () const
Which kind of summary subclass this is.
void setModulePath (StringRef ModPath)
Set the path to the module containing this function, for use in the combined index.
StringRef modulePath () const
Get the path to the module containing this function.
GVFlags flags () const
Get the flags for this GlobalValue (see struct GVFlags).
GlobalValue::LinkageTypes linkage () const
Return linkage type recorded for this global value.
void setLinkage (GlobalValue::LinkageTypes Linkage)
Sets the linkage to the value determined by global summary-based optimization.
bool notEligibleToImport () const
Return true if this global value can't be imported.
bool isLive () const
void setLive (bool Live)
void setDSOLocal (bool Local)
bool isDSOLocal () const
void setCanAutoHide (bool CanAutoHide)
bool canAutoHide () const
bool shouldImportAsDecl () const
void setImportKind (ImportKind IK)
GlobalValueSummary::ImportKind importType () const
GlobalValue::VisibilityTypes getVisibility () const
void setVisibility (GlobalValue::VisibilityTypes Vis)
void setNotEligibleToImport ()
Flag that this global value cannot be imported.
ArrayRef< ValueInfo > refs () const
Return the list of values referenced by this global value definition.
GlobalValueSummary * getBaseObject ()
If this is an alias summary, returns the summary of the aliased object (a global variable or function), otherwise returns itself.
const GlobalValueSummary * getBaseObject () const
Additional Inherited Members
Public Types inherited from llvm::GlobalValueSummary
enum SummaryKind : unsigned { AliasKind, FunctionKind, GlobalVarKind }
Sububclass discriminator (for dyn_cast<> et al.) More...
enum ImportKind : unsigned { Definition = 0 , Declaration = 1 }
Protected Member Functions inherited from llvm::GlobalValueSummary
GlobalValueSummary (SummaryKind K, GVFlags Flags, SmallVectorImpl< ValueInfo > &&Refs)

Global variable summary information to aid decisions and implementation of importing.

Global variable summary has two extra flag, telling if it is readonly or writeonly. Both readonly and writeonly variables can be optimized in the backed: readonly variables can be const-folded, while writeonly vars can be completely eliminated together with corresponding stores. We let both things happen by means of internalizing such variables after ThinLTO import.

Definition at line 1182 of file ModuleSummaryIndex.h.

classof()

getVCallVisibility()

isConstant()

bool llvm::GlobalVarSummary::isConstant ( ) const inline

maybeReadOnly()

bool llvm::GlobalVarSummary::maybeReadOnly ( ) const inline

maybeWriteOnly()

bool llvm::GlobalVarSummary::maybeWriteOnly ( ) const inline

setReadOnly()

void llvm::GlobalVarSummary::setReadOnly ( bool RO) inline

setVCallVisibility()

setVTableFuncs()

void llvm::GlobalVarSummary::setVTableFuncs ( VTableFuncList Funcs) inline

setWriteOnly()

void llvm::GlobalVarSummary::setWriteOnly ( bool WO) inline

varflags()

GVarFlags llvm::GlobalVarSummary::varflags ( ) const inline

vTableFuncs()

VarFlags


The documentation for this class was generated from the following file: