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:27
Inherits from: GlobalValue
Member Variables
- protected llvm::Comdat* ObjComdat = nullptr
- protected static const unsigned int GlobalObjectSubClassDataBits = GlobalValueSubClassDataBits - GlobalObjectBits
- private static const unsigned int AlignmentBits = LastAlignmentBit + 1
- private static const unsigned int AlignmentMask = (1 << AlignmentBits) - 1
- private static const unsigned int GlobalObjectMask = (1 << GlobalObjectBits) - 1
Inherited from GlobalValue:
- protected ValueType
- protected Linkage
- protected Visibility
- protected UnnamedAddrVal
- protected DllStorageClass
- protected ThreadLocal
- protected HasLLVMReservedName
- protected IsDSOLocal
- protected HasPartition
- protected HasSanitizerMetadata
- protected IntID = (unsigned int)0U
- protected Parent = nullptr
- protected static GlobalValueSubClassDataBits = 15
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasMetadata
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 32
- public static MaximumAlignment = 1ULL << MaxAlignmentExponent
Method Overview
- 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 GlobalObject(const llvm::GlobalObject &)
- public void addTypeMetadata(unsigned int Offset, llvm::Metadata * TypeID)
- public bool canIncreaseAlignment() const
- public static bool classof(const llvm::Value * V)
- protected void copyAttributesFrom(const llvm::GlobalObject * Src)
- public void copyMetadata(const llvm::GlobalObject * Src, unsigned int Offset)
- public llvm::MaybeAlign getAlign() const
- public uint64_t getAlignment() const
- public const llvm::Comdat * getComdat() const
- public llvm::Comdat * getComdat()
- public unsigned int getGlobalObjectSubClassData() const
- public llvm::StringRef getSection() const
- private llvm::StringRef getSectionImpl() const
- public llvm::GlobalObject::VCallVisibility getVCallVisibility() const
- public bool hasComdat() const
- public bool hasSection() const
- public void setAlignment(llvm::MaybeAlign Align)
- public void setComdat(llvm::Comdat * C)
- private void setGlobalObjectFlag(unsigned int Bit, bool Val)
- public void setGlobalObjectSubClassData(unsigned int Val)
- public void setSection(llvm::StringRef S)
- public void setVCallVisibilityMetadata(llvm::GlobalObject::VCallVisibility Visibility)
- protected ~GlobalObject()
Inherited from GlobalValue:
- public canBeOmittedFromSymbolTable
- public canBenefitFromLocalAlias
- public classof
- protected copyAttributesFrom
- public dropLLVMManglingEscape
- public eraseFromParent
- public getAbsoluteSymbolRange
- public getAddressSpace
- public getAliaseeObject
- public getAliaseeObject
- 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 getSanitizerMetadata
- 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 hasLinkOnceAnyLinkage
- public hasLinkOnceLinkage
- public hasLinkOnceODRLinkage
- public hasLocalLinkage
- public hasPartition
- public hasPrivateLinkage
- public hasProtectedVisibility
- public hasSanitizerMetadata
- 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 isImplicitDSOLocal
- public isInternalLinkage
- public isInterposable
- public isInterposableLinkage
- public isLinkOnceAnyLinkage
- public isLinkOnceLinkage
- public isLinkOnceODRLinkage
- public isLocalLinkage
- public isMaterializable
- public isPrivateLinkage
- public isStrongDefinitionForLinker
- public isTagged
- public isThreadLocal
- public isValidDeclarationLinkage
- public isWeakAnyLinkage
- public isWeakForLinker
- public isWeakForLinker
- public isWeakLinkage
- public isWeakODRLinkage
- public materialize
- public removeFromParent
- public removeSanitizerMetadata
- public setDLLStorageClass
- public setDSOLocal
- protected setGlobalValueSubClassData
- public setLinkage
- protected setParent
- public setPartition
- public setSanitizerMetadata
- public setThreadLocal
- public setThreadLocalMode
- public setUnnamedAddr
- public setVisibility
Inherited from Constant:
- public classof
- public containsConstantExpression
- public containsPoisonElement
- public containsUndefOrPoisonElement
- public destroyConstant
- public getAggregateElement
- public getAggregateElement
- public getAllOnesValue
- public getIntegerValue
- public getNullValue
- public getSplatValue
- public getUniqueInteger
- public handleOperandChange
- public hasExactInverseFP
- public hasOneLiveUse
- public hasZeroLiveUses
- public isAllOnesValue
- public isConstantUsed
- public isDLLImportDependent
- public isElementWiseEqual
- public isFiniteNonZeroFP
- public isManifestConstant
- public isMinSignedValue
- public isNaN
- public isNegativeZeroValue
- public isNormalFP
- public isNotMinSignedValue
- public isNotOneValue
- public isNullValue
- public isOneValue
- public isThreadDependent
- public isZeroValue
- public mergeUndefsWith
- public needsDynamicRelocation
- 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 isDroppable
- 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
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- 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
- protected setMetadata
- protected setMetadata
- 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 stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- 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(
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:43
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
¶GlobalObject(const llvm::GlobalObject&)
GlobalObject(const llvm::GlobalObject&)
Declared at: llvm/include/llvm/IR/GlobalObject.h:67
Parameters
- const llvm::GlobalObject&
¶void addTypeMetadata(unsigned int Offset,
llvm::Metadata* TypeID)
void addTypeMetadata(unsigned int Offset,
llvm::Metadata* TypeID)
Declared at: llvm/include/llvm/IR/GlobalObject.h:137
Parameters
- unsigned int Offset
- llvm::Metadata* TypeID
¶bool canIncreaseAlignment() const
bool canIncreaseAlignment() const
Description
Returns true if the alignment of the value can be unilaterally increased. Note that for functions this is the alignment of the code, not the alignment of a function pointer.
Declared at: llvm/include/llvm/IR/GlobalObject.h:146
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/GlobalObject.h:153
Parameters
- const llvm::Value* V
¶void copyAttributesFrom(
const llvm::GlobalObject* Src)
void copyAttributesFrom(
const llvm::GlobalObject* Src)
Declared at: llvm/include/llvm/IR/GlobalObject.h:149
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:135
Parameters
- const llvm::GlobalObject* Src
- unsigned int Offset
¶llvm::MaybeAlign getAlign() const
llvm::MaybeAlign getAlign() const
Description
Returns the alignment of the given variable or function. Note that for functions this is the alignment of the code, not the alignment of a function pointer.
Declared at: llvm/include/llvm/IR/GlobalObject.h:79
¶uint64_t getAlignment() const
uint64_t getAlignment() const
Description
FIXME: Remove this function once transition to Align is over.
Declared at: llvm/include/llvm/IR/GlobalObject.h:70
¶const llvm::Comdat* getComdat() const
const llvm::Comdat* getComdat() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:122
¶llvm::Comdat* getComdat()
llvm::Comdat* getComdat()
Declared at: llvm/include/llvm/IR/GlobalObject.h:123
¶unsigned int getGlobalObjectSubClassData() const
unsigned int getGlobalObjectSubClassData() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:87
¶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:111
¶llvm::StringRef getSectionImpl() const
llvm::StringRef getSectionImpl() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:166
¶llvm::GlobalObject::VCallVisibility
getVCallVisibility() const
llvm::GlobalObject::VCallVisibility
getVCallVisibility() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:139
¶bool hasComdat() const
bool hasComdat() const
Declared at: llvm/include/llvm/IR/GlobalObject.h:121
¶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:103
¶void setAlignment(llvm::MaybeAlign Align)
void setAlignment(llvm::MaybeAlign Align)
Declared at: llvm/include/llvm/IR/GlobalObject.h:85
Parameters
- llvm::MaybeAlign Align
¶void setComdat(llvm::Comdat* C)
void setComdat(llvm::Comdat* C)
Declared at: llvm/include/llvm/IR/GlobalObject.h:124
Parameters
- llvm::Comdat* C
¶void setGlobalObjectFlag(unsigned int Bit,
bool Val)
void setGlobalObjectFlag(unsigned int Bit,
bool Val)
Declared at: llvm/include/llvm/IR/GlobalObject.h:160
Parameters
- unsigned int Bit
- bool Val
¶void setGlobalObjectSubClassData(unsigned int Val)
void setGlobalObjectSubClassData(unsigned int Val)
Declared at: llvm/include/llvm/IR/GlobalObject.h:92
Parameters
- unsigned int Val
¶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:119
Parameters
¶void setVCallVisibilityMetadata(
llvm::GlobalObject::VCallVisibility
Visibility)
void setVCallVisibilityMetadata(
llvm::GlobalObject::VCallVisibility
Visibility)
Declared at: llvm/include/llvm/IR/GlobalObject.h:138
Parameters
- llvm::GlobalObject::VCallVisibility Visibility
¶~GlobalObject()
~GlobalObject()
Declared at: llvm/include/llvm/IR/GlobalObject.h:49