class GlobalObject
Declaration
class GlobalObject : public GlobalValue { /* full declaration omitted */ };
Description
This is an important base class in LLVM. It provides the common facilities of all constant values in an LLVM program. A constant is a value that is immutable at runtime. Functions are constants because their address is immutable. Same with global variables. All constants share the capabilities provided in this class. All constants can have a null value. They can have an operand list. Constants can be simple (integer and floating point values), complex (arrays and structures), or expression based (computations yielding a constant value composed of only certain operators and other constant values). Note that Constants are immutable (once created they never change) and are fully shared by structural equivalence. This means that two structurally equivalent constants will always have the same address. Constants are created on demand as needed and never deleted: thus clients don't have to worry about the lifetime of the objects. LLVM Constant Representation
Declared at: llvm/include/llvm/IR/GlobalObject.h:30
Inherits from: GlobalValue
Member Variables
- protected llvm::Comdat* ObjComdat
- protected static const unsigned int GlobalObjectSubClassDataBits = GlobalValueSubClassDataBits - GlobalObjectBits
Inherited from GlobalValue:
- protected ValueType
- protected Linkage
- protected Visibility
- protected UnnamedAddrVal
- protected DllStorageClass
- protected ThreadLocal
- protected HasLLVMReservedName
- protected IsDSOLocal
- protected HasPartition
- protected IntID
- protected Parent
- protected static GlobalValueSubClassDataBits = 16
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 29
- public static MaximumAlignment = 1U << MaxAlignmentExponent
Method Overview
- public GlobalObject(const llvm::GlobalObject &)
- protected GlobalObject(llvm::Type * Ty, llvm::Value::ValueTy VTy, llvm::Use * Ops, unsigned int NumOps, llvm::GlobalValue::LinkageTypes Linkage, const llvm::Twine & Name, unsigned int AddressSpace = 0)
- public void addMetadata(llvm::StringRef Kind, llvm::MDNode & MD)
- public void addMetadata(unsigned int KindID, llvm::MDNode & MD)
- public void addTypeMetadata(unsigned int Offset, llvm::Metadata * TypeID)
- public void addVCallVisibilityMetadata(llvm::GlobalObject::VCallVisibility Visibility)
- public static bool classof(const llvm::Value * V)
- public void clearMetadata()
- protected void copyAttributesFrom(const llvm::GlobalObject * Src)
- public void copyMetadata(const llvm::GlobalObject * Src, unsigned int Offset)
- public bool eraseMetadata(unsigned int KindID)
- public unsigned int getAlignment() const
- public void getAllMetadata(SmallVectorImpl<std::pair<unsigned int, MDNode *>> & MDs) const
- public const llvm::Comdat * getComdat() const
- public llvm::Comdat * getComdat()
- public unsigned int getGlobalObjectSubClassData() const
- public llvm::MDNode * getMetadata(unsigned int KindID) const
- public llvm::MDNode * getMetadata(llvm::StringRef Kind) const
- public void getMetadata(unsigned int KindID, SmallVectorImpl<llvm::MDNode *> & MDs) const
- public void getMetadata(llvm::StringRef Kind, SmallVectorImpl<llvm::MDNode *> & MDs) const
- public llvm::StringRef getSection() const
- public llvm::GlobalObject::VCallVisibility getVCallVisibility() const
- public bool hasComdat() const
- public bool hasMetadata(llvm::StringRef Kind) const
- public bool hasMetadata(unsigned int KindID) const
- public bool hasMetadata() const
- public bool hasSection() const
- public void setAlignment(llvm::MaybeAlign Align)
- public void setComdat(llvm::Comdat * C)
- public void setGlobalObjectSubClassData(unsigned int Val)
- public void setMetadata(llvm::StringRef Kind, llvm::MDNode * MD)
- public void setMetadata(unsigned int KindID, llvm::MDNode * MD)
- public void setSection(llvm::StringRef S)
Inherited from GlobalValue:
- public canBeOmittedFromSymbolTable
- public canIncreaseAlignment
- public classof
- protected copyAttributesFrom
- public dropLLVMManglingEscape
- public eraseFromParent
- public getAbsoluteSymbolRange
- public getAddressSpace
- public getAlignment
- public getBaseObject
- public getBaseObject
- public getComdat
- public getComdat
- public getDLLStorageClass
- public getGUID
- public getGUID
- public getGlobalIdentifier
- public getGlobalIdentifier
- protected getGlobalValueSubClassData
- public getLinkOnceLinkage
- public getLinkage
- public getMinUnnamedAddr
- public getParent
- public getParent
- public getPartition
- public getSection
- public getThreadLocalMode
- public getType
- public getUnnamedAddr
- public getValueType
- public getVisibility
- public getWeakLinkage
- public hasAppendingLinkage
- public hasAtLeastLocalUnnamedAddr
- public hasAvailableExternallyLinkage
- public hasComdat
- public hasCommonLinkage
- public hasDLLExportStorageClass
- public hasDLLImportStorageClass
- public hasDefaultVisibility
- public hasExactDefinition
- public hasExternalLinkage
- public hasExternalWeakLinkage
- public hasGlobalUnnamedAddr
- public hasHiddenVisibility
- public hasInternalLinkage
- public hasLinkOnceLinkage
- public hasLinkOnceODRLinkage
- public hasLocalLinkage
- public hasPartition
- public hasPrivateLinkage
- public hasProtectedVisibility
- public hasSection
- public hasValidDeclarationLinkage
- public hasWeakAnyLinkage
- public hasWeakLinkage
- public hasWeakODRLinkage
- public isAbsoluteSymbolRef
- public isAppendingLinkage
- public isAvailableExternallyLinkage
- public isCommonLinkage
- public isDSOLocal
- public isDeclaration
- public isDeclarationForLinker
- public isDefinitionExact
- public isDiscardableIfUnused
- public isDiscardableIfUnused
- public isExternalLinkage
- public isExternalWeakLinkage
- public isInternalLinkage
- public isInterposable
- public isInterposableLinkage
- public isLinkOnceLinkage
- public isLinkOnceODRLinkage
- public isLocalLinkage
- public isMaterializable
- public isPrivateLinkage
- public isStrongDefinitionForLinker
- public isThreadLocal
- public isValidDeclarationLinkage
- public isWeakAnyLinkage
- public isWeakForLinker
- public isWeakForLinker
- public isWeakLinkage
- public isWeakODRLinkage
- public materialize
- public removeFromParent
- public setDLLStorageClass
- public setDSOLocal
- protected setGlobalValueSubClassData
- public setLinkage
- protected setParent
- public setPartition
- public setThreadLocal
- public setThreadLocalMode
- public setUnnamedAddr
- public setVisibility
Inherited from Constant:
- public canTrap
- public classof
- public containsConstantExpression
- public containsUndefElement
- public destroyConstant
- public getAggregateElement
- public getAggregateElement
- public getAllOnesValue
- public getIntegerValue
- public getNullValue
- public getSplatValue
- public getUniqueInteger
- public handleOperandChange
- public hasExactInverseFP
- public isAllOnesValue
- public isConstantUsed
- public isDLLImportDependent
- public isElementWiseEqual
- public isFiniteNonZeroFP
- public isMinSignedValue
- public isNaN
- public isNegativeZeroValue
- public isNormalFP
- public isNotMinSignedValue
- public isNotOneValue
- public isNullValue
- public isOneValue
- public isThreadDependent
- public isZeroValue
- public needsRelocation
- public removeDeadConstantUsers
- public replaceUndefsWith
- public stripPointerCasts
- public stripPointerCasts
Inherited from User:
- protected Op
- protected Op
- protected OpFrom
- protected allocHungoffUses
- public classof
- public dropAllReferences
- public getDescriptor
- public getDescriptor
- public getNumOperands
- public getOperand
- public getOperandList
- public getOperandList
- public getOperandUse
- public getOperandUse
- protected growHungoffUses
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operand_values
- public operand_values
- public operands
- public operands
- public replaceUsesOfWith
- public setGlobalVariableNumOperands
- public setNumHungOffUseOperands
- public setOperand
- public value_op_begin
- public value_op_begin
- public value_op_end
- public value_op_end
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public clearSubclassOptionalData
- public deleteValue
- public dump
- public getContext
- public getName
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- protected getSubclassDataFromValue
- public getType
- public getValueID
- public getValueName
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isUsedByMetadata
- public isUsedInBasicBlock
- public materialized_use_begin
- public materialized_use_begin
- public materialized_use_empty
- public materialized_user_begin
- public materialized_user_begin
- public materialized_users
- public materialized_users
- public materialized_uses
- public materialized_uses
- public mutateType
- public print
- public print
- public printAsOperand
- public printAsOperand
- public replaceAllUsesWith
- public replaceNonMetadataUsesWith
- public replaceUsesOutsideBlock
- public replaceUsesWithIf
- public reverseUseList
- public setName
- public setValueName
- protected setValueSubclassData
- public sortUseList
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsOffsets
- public stripInBoundsOffsets
- public stripPointerCasts
- public stripPointerCasts
- public stripPointerCastsAndAliases
- public stripPointerCastsAndAliases
- public stripPointerCastsAndInvariantGroups
- public stripPointerCastsAndInvariantGroups
- public stripPointerCastsSameRepresentation
- public stripPointerCastsSameRepresentation
- public takeName
- public use_begin
- public use_begin
- public use_empty
- public use_end
- public use_end
- public user_back
- public user_back
- public user_begin
- public user_begin
- public user_empty
- public user_end
- public user_end
- public users
- public users
- public uses
- public uses
Methods
¶GlobalObject(const llvm::GlobalObject&)
GlobalObject(const llvm::GlobalObject&)
Declared at: llvm/include/llvm/IR/GlobalObject.h:71
Parameters
- const llvm::GlobalObject&
¶GlobalObject(
llvm::Type* Ty,
llvm::Value::ValueTy VTy,
llvm::Use* Ops,
unsigned int NumOps,
llvm::GlobalValue::LinkageTypes Linkage,
const llvm::Twine& Name,
unsigned int AddressSpace = 0)
GlobalObject(
llvm::Type* Ty,
llvm::Value::ValueTy VTy,
llvm::Use* Ops,
unsigned int NumOps,
llvm::GlobalValue::LinkageTypes Linkage,
const llvm::Twine& Name,
unsigned int AddressSpace = 0)
Declared at: llvm/include/llvm/IR/GlobalObject.h:46
Parameters
- llvm::Type* Ty
- llvm::Value::ValueTy VTy
- llvm::Use* Ops
- unsigned int NumOps
- llvm::GlobalValue::LinkageTypes Linkage
- const llvm::Twine& Name
- unsigned int AddressSpace = 0
¶void addMetadata(llvm::StringRef Kind,
llvm::MDNode& MD)
void addMetadata(llvm::StringRef Kind,
llvm::MDNode& MD)
Declared at: llvm/include/llvm/IR/GlobalObject.h:164
Parameters
- llvm::StringRef Kind
- llvm::MDNode& MD
¶void addMetadata(unsigned int KindID,
llvm::MDNode& MD)
void addMetadata(unsigned int KindID,
llvm::MDNode& MD)
Description
Add a metadata attachment. @ {
Declared at: llvm/include/llvm/IR/GlobalObject.h:163
Parameters
- unsigned int KindID
- llvm::MDNode& MD
¶void addTypeMetadata(unsigned int Offset,
llvm::Metadata* TypeID)
void addTypeMetadata(unsigned int Offset,
llvm::Metadata* TypeID)
Declared at: llvm/include/llvm/IR/GlobalObject.h:180
Parameters
- unsigned int Offset
- llvm::Metadata* TypeID
¶void addVCallVisibilityMetadata(
llvm::GlobalObject::VCallVisibility
Visibility)
void addVCallVisibilityMetadata(
llvm::GlobalObject::VCallVisibility
Visibility)
Declared at: llvm/include/llvm/IR/GlobalObject.h:181
Parameters
- llvm::GlobalObject::VCallVisibility Visibility
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/GlobalObject.h:189
Parameters
- const llvm::Value* V
¶void clearMetadata()
void clearMetadata()
Declared at: llvm/include/llvm/IR/GlobalObject.h:194
¶void copyAttributesFrom(
const llvm::GlobalObject* Src)
void copyAttributesFrom(
const llvm::GlobalObject* Src)
Declared at: llvm/include/llvm/IR/GlobalObject.h:185
Parameters
- const llvm::GlobalObject* Src
¶void copyMetadata(const llvm::GlobalObject* Src,
unsigned int Offset)
void copyMetadata(const llvm::GlobalObject* Src,
unsigned int Offset)
Description
Copy metadata from Src, adjusting offsets by Offset.
Declared at: llvm/include/llvm/IR/GlobalObject.h:178
Parameters
- const llvm::GlobalObject* Src
- unsigned int Offset
¶bool eraseMetadata(unsigned int KindID)
bool eraseMetadata(unsigned int KindID)
Description
Erase all metadata attachments with the given kind.
Declared at: llvm/include/llvm/IR/GlobalObject.h:175
Parameters
- unsigned int KindID
Returns
true if any metadata was removed.
¶unsigned int getAlignment() const
unsigned int getAlignment() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:73
¶void getAllMetadata(
SmallVectorImpl<
std::pair<unsigned int, MDNode*>>& MDs)
const
void getAllMetadata(
SmallVectorImpl<
std::pair<unsigned int, MDNode*>>& MDs)
const
Description
Appends all attachments for the global to \c MDs, sorting by attachment ID. Attachments with the same ID appear in insertion order.
Declared at: llvm/include/llvm/IR/GlobalObject.h:170
Parameters
- SmallVectorImpl<std::pair<unsigned int, MDNode*>>& MDs
¶const llvm::Comdat* getComdat() const
const llvm::Comdat* getComdat() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:120
¶llvm::Comdat* getComdat()
llvm::Comdat* getComdat()
Declared at: llvm/include/llvm/IR/GlobalObject.h:121
¶unsigned int getGlobalObjectSubClassData() const
unsigned int getGlobalObjectSubClassData() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:85
¶llvm::MDNode* getMetadata(
unsigned int KindID) const
llvm::MDNode* getMetadata(
unsigned int KindID) const
Description
Get the current metadata attachments for the given kind, if any. These functions require that the function have at most a single attachment of the given kind, and return \c nullptr if such an attachment is missing. @ {
Declared at: llvm/include/llvm/IR/GlobalObject.h:140
Parameters
- unsigned int KindID
¶llvm::MDNode* getMetadata(
llvm::StringRef Kind) const
llvm::MDNode* getMetadata(
llvm::StringRef Kind) const
Declared at: llvm/include/llvm/IR/GlobalObject.h:141
Parameters
- llvm::StringRef Kind
¶void getMetadata(
unsigned int KindID,
SmallVectorImpl<llvm::MDNode*>& MDs) const
void getMetadata(
unsigned int KindID,
SmallVectorImpl<llvm::MDNode*>& MDs) const
Description
Appends all attachments with the given ID to \c MDs in insertion order. If the global has no attachments with the given ID, or if ID is invalid, leaves MDs unchanged. @ {
Declared at: llvm/include/llvm/IR/GlobalObject.h:148
Parameters
- unsigned int KindID
- SmallVectorImpl<llvm::MDNode*>& MDs
¶void getMetadata(
llvm::StringRef Kind,
SmallVectorImpl<llvm::MDNode*>& MDs) const
void getMetadata(
llvm::StringRef Kind,
SmallVectorImpl<llvm::MDNode*>& MDs) const
Declared at: llvm/include/llvm/IR/GlobalObject.h:149
Parameters
- llvm::StringRef Kind
- SmallVectorImpl<llvm::MDNode*>& MDs
¶llvm::StringRef getSection() const
llvm::StringRef getSection() const
Description
Get the custom section of this global if it has one. If this global does not have a custom section, this will be empty and the default object file section (.text, .data, etc) will be used.
Declared at: llvm/include/llvm/IR/GlobalObject.h:109
¶llvm::GlobalObject::VCallVisibility
getVCallVisibility() const
llvm::GlobalObject::VCallVisibility
getVCallVisibility() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:182
¶bool hasComdat() const
bool hasComdat() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:119
¶bool hasMetadata(llvm::StringRef Kind) const
bool hasMetadata(llvm::StringRef Kind) const
Declared at: llvm/include/llvm/IR/GlobalObject.h:131
Parameters
- llvm::StringRef Kind
¶bool hasMetadata(unsigned int KindID) const
bool hasMetadata(unsigned int KindID) const
Description
Check if this has any metadata of the given kind.
Declared at: llvm/include/llvm/IR/GlobalObject.h:128
Parameters
- unsigned int KindID
¶bool hasMetadata() const
bool hasMetadata() const
Description
Check if this has any metadata.
Declared at: llvm/include/llvm/IR/GlobalObject.h:125
¶bool hasSection() const
bool hasSection() const
Description
Check if this global has a custom object file section. This is more efficient than calling getSection() and checking for an empty string.
Declared at: llvm/include/llvm/IR/GlobalObject.h:101
¶void setAlignment(llvm::MaybeAlign Align)
void setAlignment(llvm::MaybeAlign Align)
Declared at: llvm/include/llvm/IR/GlobalObject.h:83
Parameters
- llvm::MaybeAlign Align
¶void setComdat(llvm::Comdat* C)
void setComdat(llvm::Comdat* C)
Declared at: llvm/include/llvm/IR/GlobalObject.h:122
Parameters
- llvm::Comdat* C
¶void setGlobalObjectSubClassData(unsigned int Val)
void setGlobalObjectSubClassData(unsigned int Val)
Declared at: llvm/include/llvm/IR/GlobalObject.h:90
Parameters
- unsigned int Val
¶void setMetadata(llvm::StringRef Kind,
llvm::MDNode* MD)
void setMetadata(llvm::StringRef Kind,
llvm::MDNode* MD)
Declared at: llvm/include/llvm/IR/GlobalObject.h:158
Parameters
- llvm::StringRef Kind
- llvm::MDNode* MD
¶void setMetadata(unsigned int KindID,
llvm::MDNode* MD)
void setMetadata(unsigned int KindID,
llvm::MDNode* MD)
Description
Set a particular kind of metadata attachment. Sets the given attachment to \c MD, erasing it if \c MD is \c nullptr or replacing it if it already exists. @ {
Declared at: llvm/include/llvm/IR/GlobalObject.h:157
Parameters
- unsigned int KindID
- llvm::MDNode* MD
¶void setSection(llvm::StringRef S)
void setSection(llvm::StringRef S)
Description
Change the section for this global. Setting the section to the empty string tells LLVM to choose an appropriate default object file section.
Declared at: llvm/include/llvm/IR/GlobalObject.h:117