LLVM  9.0.0svn
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::GlobalVarSummary Class Reference

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

#include "llvm/IR/ModuleSummaryIndex.h"

Inheritance diagram for llvm::GlobalVarSummary:
Inheritance graph
[legend]
Collaboration diagram for llvm::GlobalVarSummary:
Collaboration graph
[legend]

Classes

struct  GVarFlags
 

Public Member Functions

 GlobalVarSummary (GVFlags Flags, GVarFlags VarFlags, std::vector< ValueInfo > Refs)
 
GVarFlags varflags () const
 
void setReadOnly (bool RO)
 
void setWriteOnly (bool WO)
 
bool maybeReadOnly () const
 
bool maybeWriteOnly () const
 
void setVTableFuncs (VTableFuncList Funcs)
 
ArrayRef< VirtFuncOffsetvTableFuncs () 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. More...
 
void setOriginalName (GlobalValue::GUID Name)
 Initialize the original name hash in this summary. More...
 
SummaryKind getSummaryKind () const
 Which kind of summary subclass this is. More...
 
void setModulePath (StringRef ModPath)
 Set the path to the module containing this function, for use in the combined index. More...
 
StringRef modulePath () const
 Get the path to the module containing this function. More...
 
GVFlags flags () const
 Get the flags for this GlobalValue (see struct GVFlags). More...
 
GlobalValue::LinkageTypes linkage () const
 Return linkage type recorded for this global value. More...
 
void setLinkage (GlobalValue::LinkageTypes Linkage)
 Sets the linkage to the value determined by global summary-based optimization. More...
 
bool notEligibleToImport () const
 Return true if this global value can't be imported. More...
 
bool isLive () const
 
void setLive (bool Live)
 
void setDSOLocal (bool Local)
 
bool isDSOLocal () const
 
void setCanAutoHide (bool CanAutoHide)
 
bool canAutoHide () const
 
void setNotEligibleToImport ()
 Flag that this global value cannot be imported. More...
 
ArrayRef< ValueInforefs () const
 Return the list of values referenced by this global value definition. More...
 
GlobalValueSummarygetBaseObject ()
 If this is an alias summary, returns the summary of the aliased object (a global variable or function), otherwise returns itself. More...
 
const GlobalValueSummarygetBaseObject () const
 

Static Public Member Functions

static bool classof (const GlobalValueSummary *GVS)
 Check if this is a global variable summary. More...
 

Public Attributes

struct llvm::GlobalVarSummary::GVarFlags VarFlags
 

Additional Inherited Members

- Public Types inherited from llvm::GlobalValueSummary
enum  SummaryKind : unsigned { AliasKind, FunctionKind, GlobalVarKind }
 Sububclass discriminator (for dyn_cast<> et al.) More...
 
- Protected Member Functions inherited from llvm::GlobalValueSummary
 GlobalValueSummary (SummaryKind K, GVFlags Flags, std::vector< ValueInfo > Refs)
 

Detailed Description

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 747 of file ModuleSummaryIndex.h.

Constructor & Destructor Documentation

◆ GlobalVarSummary()

llvm::GlobalVarSummary::GlobalVarSummary ( GVFlags  Flags,
GVarFlags  VarFlags,
std::vector< ValueInfo Refs 
)
inline

Definition at line 765 of file ModuleSummaryIndex.h.

Member Function Documentation

◆ classof()

static bool llvm::GlobalVarSummary::classof ( const GlobalValueSummary GVS)
inlinestatic

Check if this is a global variable summary.

Definition at line 771 of file ModuleSummaryIndex.h.

References llvm::GlobalValueSummary::getSummaryKind().

◆ maybeReadOnly()

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

Definition at line 778 of file ModuleSummaryIndex.h.

◆ maybeWriteOnly()

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

Definition at line 779 of file ModuleSummaryIndex.h.

◆ setReadOnly()

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

Definition at line 776 of file ModuleSummaryIndex.h.

◆ setVTableFuncs()

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

Definition at line 781 of file ModuleSummaryIndex.h.

References assert().

◆ setWriteOnly()

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

Definition at line 777 of file ModuleSummaryIndex.h.

◆ varflags()

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

Definition at line 775 of file ModuleSummaryIndex.h.

Referenced by writeTypeIdCompatibleVtableSummaryRecord().

◆ vTableFuncs()

ArrayRef<VirtFuncOffset> llvm::GlobalVarSummary::vTableFuncs ( ) const
inline

Member Data Documentation

◆ VarFlags

struct llvm::GlobalVarSummary::GVarFlags llvm::GlobalVarSummary::VarFlags

Referenced by getSummaryKindName().


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