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

Public Member Functions

GlobalAlias (const GlobalAlias &)=delete

GlobalAlias &

operator= (const GlobalAlias &)=delete

void *

operator new (size_t S)

void

operator delete (void *Ptr)

DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Constant)

Provide fast operand accessors.

void

copyAttributesFrom (const GlobalAlias *Src)

LLVM_ABI void

removeFromParent ()

removeFromParent - This method unlinks 'this' from the containing module, but does not delete it.

LLVM_ABI void

eraseFromParent ()

eraseFromParent - This method unlinks 'this' from the containing module and deletes it.

LLVM_ABI void

setAliasee (Constant *Aliasee)

These methods retrieve and set alias target.

const Constant *

getAliasee () const

Constant *

getAliasee ()

LLVM_ABI const GlobalObject *

getAliaseeObject () const

GlobalObject *

getAliaseeObject ()

Public Member Functions inherited from llvm::GlobalValue

GlobalValue (const GlobalValue &)=delete

unsigned

getAddressSpace () const

bool

hasGlobalUnnamedAddr () const

bool

hasAtLeastLocalUnnamedAddr () const

Returns true if this value's address is not significant in this module.

UnnamedAddr

getUnnamedAddr () const

void

setUnnamedAddr (UnnamedAddr Val)

bool

hasComdat () const

LLVM_ABI const Comdat *

getComdat () const

Comdat *

getComdat ()

VisibilityTypes

getVisibility () const

bool

hasDefaultVisibility () const

bool

hasHiddenVisibility () const

bool

hasProtectedVisibility () const

void

setVisibility (VisibilityTypes V)

bool

isThreadLocal () const

If the value is "Thread Local", its value isn't shared by the threads.

void

setThreadLocal (bool Val)

void

setThreadLocalMode (ThreadLocalMode Val)

ThreadLocalMode

getThreadLocalMode () const

DLLStorageClassTypes

getDLLStorageClass () const

bool

hasDLLImportStorageClass () const

bool

hasDLLExportStorageClass () const

void

setDLLStorageClass (DLLStorageClassTypes C)

bool

hasSection () const

LLVM_ABI StringRef

getSection () const

PointerType *

getType () const

Global values are always pointers.

Type *

getValueType () const

bool

isImplicitDSOLocal () const

void

setDSOLocal (bool Local)

bool

isDSOLocal () const

bool

hasPartition () const

LLVM_ABI StringRef

getPartition () const

LLVM_ABI void

setPartition (StringRef Part)

bool

hasSanitizerMetadata () const

LLVM_ABI const SanitizerMetadata &

getSanitizerMetadata () const

LLVM_ABI void

setSanitizerMetadata (SanitizerMetadata Meta)

LLVM_ABI void

removeSanitizerMetadata ()

LLVM_ABI void

setNoSanitizeMetadata ()

bool

isTagged () const

bool

isDefinitionExact () const

Return true if the currently visible definition of this global (if any) is exactly the definition we will see at runtime.

bool

hasExactDefinition () const

Return true if this global has an exact defintion.

LLVM_ABI bool

isInterposable () const

Return true if this global's definition can be substituted with an arbitrary definition at link time or load time.

LLVM_ABI bool

canBenefitFromLocalAlias () const

bool

hasExternalLinkage () const

bool

hasAvailableExternallyLinkage () const

bool

hasLinkOnceLinkage () const

bool

hasLinkOnceAnyLinkage () const

bool

hasLinkOnceODRLinkage () const

bool

hasWeakLinkage () const

bool

hasWeakAnyLinkage () const

bool

hasWeakODRLinkage () const

bool

hasAppendingLinkage () const

bool

hasInternalLinkage () const

bool

hasPrivateLinkage () const

bool

hasLocalLinkage () const

bool

hasExternalWeakLinkage () const

bool

hasCommonLinkage () const

bool

hasValidDeclarationLinkage () const

void

setLinkage (LinkageTypes LT)

LinkageTypes

getLinkage () const

bool

isDiscardableIfUnused () const

bool

isWeakForLinker () const

GUID

getGUID () const

Return a 64-bit global unique ID constructed from global value name (i.e.

LLVM_ABI bool

isDeclaration () const

Return true if the primary definition of this global value is outside of the current translation unit.

bool

isDeclarationForLinker () const

bool

isStrongDefinitionForLinker () const

Returns true if this global's definition will be the one chosen by the linker.

LLVM_ABI const GlobalObject *

getAliaseeObject () const

GlobalObject *

getAliaseeObject ()

LLVM_ABI bool

isAbsoluteSymbolRef () const

Returns whether this is a reference to an absolute symbol.

LLVM_ABI std::optional< ConstantRange >

getAbsoluteSymbolRange () const

If this is an absolute symbol reference, returns the range of the symbol, otherwise returns std::nullopt.

LLVM_ABI void

removeFromParent ()

This method unlinks 'this' from the containing module, but does not delete it.

LLVM_ABI void

eraseFromParent ()

This method unlinks 'this' from the containing module and deletes it.

Module *

getParent ()

Get the module that this global value is contained inside of...

const Module *

getParent () const

LLVM_ABI const DataLayout &

getDataLayout () const

Get the data layout of the module this global belongs to.

LLVM_ABI bool

canBeOmittedFromSymbolTable () const

True if GV can be left out of the object symbol table.

LLVM_ABI bool

isMaterializable () const

If this function's Module is being lazily streamed in functions from disk or some other source, this method can be used to check to see if the function has been read in yet or not.

LLVM_ABI Error

materialize ()

Make sure this GlobalValue is fully read.

Public Member Functions inherited from llvm::Constant

void

operator= (const Constant &)=delete

Constant (const Constant &)=delete

LLVM_ABI bool

isNullValue () const

Return true if this is the value that would be returned by getNullValue.

LLVM_ABI bool

isOneValue () const

Returns true if the value is one.

LLVM_ABI bool

isNotOneValue () const

Return true if the value is not the one value, or, for vectors, does not contain one value elements.

LLVM_ABI bool

isAllOnesValue () const

Return true if this is the value that would be returned by getAllOnesValue.

LLVM_ABI bool

isNegativeZeroValue () const

Return true if the value is what would be returned by getZeroValueForNegation.

LLVM_ABI bool

isZeroValue () const

Return true if the value is negative zero or null value.

LLVM_ABI bool

isNotMinSignedValue () const

Return true if the value is not the smallest signed value, or, for vectors, does not contain smallest signed value elements.

LLVM_ABI bool

isMinSignedValue () const

Return true if the value is the smallest signed value.

LLVM_ABI bool

isMaxSignedValue () const

Return true if the value is the largest signed value.

LLVM_ABI bool

isFiniteNonZeroFP () const

Return true if this is a finite and non-zero floating-point scalar constant or a fixed width vector constant with all finite and non-zero elements.

LLVM_ABI bool

isNormalFP () const

Return true if this is a normal (as opposed to denormal, infinity, nan, or zero) floating-point scalar constant or a vector constant with all normal elements.

LLVM_ABI bool

hasExactInverseFP () const

Return true if this scalar has an exact multiplicative inverse or this vector has an exact multiplicative inverse for each element in the vector.

LLVM_ABI bool

isNaN () const

Return true if this is a floating-point NaN constant or a vector floating-point constant with all NaN elements.

LLVM_ABI bool

isElementWiseEqual (Value *Y) const

Return true if this constant and a constant 'Y' are element-wise equal.

LLVM_ABI bool

containsUndefOrPoisonElement () const

Return true if this is a vector constant that includes any undef or poison elements.

LLVM_ABI bool

containsPoisonElement () const

Return true if this is a vector constant that includes any poison elements.

LLVM_ABI bool

containsUndefElement () const

Return true if this is a vector constant that includes any strictly undef (not poison) elements.

LLVM_ABI bool

containsConstantExpression () const

Return true if this is a fixed width vector constant that includes any constant expressions.

LLVM_ABI bool

isThreadDependent () const

Return true if the value can vary between threads.

LLVM_ABI bool

isDLLImportDependent () const

Return true if the value is dependent on a dllimport variable.

LLVM_ABI bool

isConstantUsed () const

Return true if the constant has users other than constant expressions and other dangling things.

LLVM_ABI bool

needsRelocation () const

This method classifies the entry according to whether or not it may generate a relocation entry (either static or dynamic).

LLVM_ABI bool

needsDynamicRelocation () const

LLVM_ABI Constant *

getAggregateElement (unsigned Elt) const

For aggregates (struct/array/vector) return the constant that corresponds to the specified element if possible, or null if not.

LLVM_ABI Constant *

getAggregateElement (Constant *Elt) const

LLVM_ABI Constant *

getSplatValue (bool AllowPoison=false) const

If all elements of the vector constant have the same value, return that value.

LLVM_ABI const APInt &

getUniqueInteger () const

If C is a constant integer then return its value, otherwise C must be a vector of constant integers, all equal, and the common value is returned.

LLVM_ABI ConstantRange

toConstantRange () const

Convert constant to an approximate constant range.

LLVM_ABI void

destroyConstant ()

Called if some element of this constant is no longer valid.

LLVM_ABI void

handleOperandChange (Value *, Value *)

This method is a special form of User::replaceUsesOfWith (which does not work on constants) that does work on constants.

LLVM_ABI void

removeDeadConstantUsers () const

If there are any dead constant users dangling off of this constant, remove them.

LLVM_ABI bool

hasOneLiveUse () const

Return true if the constant has exactly one live use.

LLVM_ABI bool

hasZeroLiveUses () const

Return true if the constant has no live uses.

const Constant *

stripPointerCasts () const

Constant *

stripPointerCasts ()

LLVM_ABI bool

isManifestConstant () const

Return true if a constant is ConstantData or a ConstantAggregate or ConstantExpr that contain only ConstantData.

Public Member Functions inherited from llvm::User

User (const User &)=delete

LLVM_ABI void

operator delete (void *Usr)

Free memory allocated for User and Use objects.

void

operator delete (void *Usr, HungOffOperandsAllocMarker)

Placement delete - required by std, called if the ctor throws.

void

operator delete (void *Usr, IntrusiveOperandsAllocMarker)

Placement delete - required by std, called if the ctor throws.

void

operator delete (void *Usr, IntrusiveOperandsAndDescriptorAllocMarker)

Placement delete - required by std, called if the ctor throws.

const Use *

getOperandList () const

Use *

getOperandList ()

Value *

getOperand (unsigned i) const

void

setOperand (unsigned i, Value *Val)

const Use &

getOperandUse (unsigned i) const

Use &

getOperandUse (unsigned i)

unsigned

getNumOperands () const

LLVM_ABI ArrayRef< const uint8_t >

getDescriptor () const

Returns the descriptor co-allocated with this User instance.

LLVM_ABI MutableArrayRef< uint8_t >

getDescriptor ()

Returns the descriptor co-allocated with this User instance.

void

setNumHungOffUseOperands (unsigned NumOps)

Subclasses with hung off uses need to manage the operand count themselves.

LLVM_ABI bool

isDroppable () const

A droppable user is a user for which uses can be dropped without affecting correctness and should be dropped rather than preventing a transformation from happening.

op_iterator

op_begin ()

const_op_iterator

op_begin () const

op_iterator

op_end ()

const_op_iterator

op_end () const

op_range

operands ()

const_op_range

operands () const

value_op_iterator

value_op_begin ()

value_op_iterator

value_op_end ()

iterator_range< value_op_iterator >

operand_values ()

const_value_op_iterator

value_op_begin () const

const_value_op_iterator

value_op_end () const

iterator_range< const_value_op_iterator >

operand_values () const

void

dropAllReferences ()

Drop all references to operands.

LLVM_ABI bool

replaceUsesOfWith (Value *From, Value *To)

Replace uses of one Value with another.

Public Member Functions inherited from llvm::Value

Value (const Value &)=delete

Value &

operator= (const Value &)=delete

LLVM_ABI void

deleteValue ()

Delete a pointer to a generic Value.

LLVM_ABI void

dump () const

Support for debugging, callable in GDB: V->dump()

Type *

getType () const

All values are typed, get the type of this value.

LLVM_ABI LLVMContext &

getContext () const

All values hold a context through their type.

bool

hasName () const

LLVM_ABI ValueName *

getValueName () const

LLVM_ABI void

setValueName (ValueName *VN)

LLVM_ABI StringRef

getName () const

Return a constant reference to the value's name.

LLVM_ABI void

setName (const Twine &Name)

Change the name of the value.

LLVM_ABI void

takeName (Value *V)

Transfer the name from V to this value.

LLVM_ABI std::string

getNameOrAsOperand () const

LLVM_ABI void

replaceAllUsesWith (Value *V)

Change all uses of this to point to a new Value.

LLVM_ABI void

replaceNonMetadataUsesWith (Value *V)

Change non-metadata uses of this to point to a new Value.

LLVM_ABI void

replaceUsesWithIf (Value *New, llvm::function_ref< bool(Use &U)> ShouldReplace)

Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the given Use.

LLVM_ABI void

replaceUsesOutsideBlock (Value *V, BasicBlock *BB)

replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.

LLVM_ABI void

assertModuleIsMaterializedImpl () const

void

assertModuleIsMaterialized () const

bool

hasUseList () const

Check if this Value has a use-list.

bool

use_empty () const

bool

materialized_use_empty () const

use_iterator

materialized_use_begin ()

const_use_iterator

materialized_use_begin () const

use_iterator

use_begin ()

const_use_iterator

use_begin () const

use_iterator

use_end ()

const_use_iterator

use_end () const

iterator_range< use_iterator >

materialized_uses ()

iterator_range< const_use_iterator >

materialized_uses () const

iterator_range< use_iterator >

uses ()

iterator_range< const_use_iterator >

uses () const

bool

user_empty () const

user_iterator

materialized_user_begin ()

const_user_iterator

materialized_user_begin () const

user_iterator

user_begin ()

const_user_iterator

user_begin () const

user_iterator

user_end ()

const_user_iterator

user_end () const

User *

user_back ()

const User *

user_back () const

iterator_range< user_iterator >

materialized_users ()

iterator_range< const_user_iterator >

materialized_users () const

iterator_range< user_iterator >

users ()

iterator_range< const_user_iterator >

users () const

bool

hasOneUse () const

Return true if there is exactly one use of this value.

LLVM_ABI bool

hasNUses (unsigned N) const

Return true if this Value has exactly N uses.

LLVM_ABI bool

hasNUsesOrMore (unsigned N) const

Return true if this value has N uses or more.

LLVM_ABI bool

hasOneUser () const

Return true if there is exactly one user of this value.

LLVM_ABI Use *

getSingleUndroppableUse ()

Return true if there is exactly one use of this value that cannot be dropped.

const Use *

getSingleUndroppableUse () const

LLVM_ABI User *

getUniqueUndroppableUser ()

Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value).

const User *

getUniqueUndroppableUser () const

LLVM_ABI bool

hasNUndroppableUses (unsigned N) const

Return true if there this value.

LLVM_ABI bool

hasNUndroppableUsesOrMore (unsigned N) const

Return true if this value has N uses or more.

LLVM_ABI void

dropDroppableUses (llvm::function_ref< bool(const Use *)> ShouldDrop=[](const Use *) { return true;})

Remove every uses that can safely be removed.

LLVM_ABI void

dropDroppableUsesIn (User &Usr)

Remove every use of this value in [User](classllvm%5F1%5F1User.html) that can safely be removed.

LLVM_ABI bool

isUsedInBasicBlock (const BasicBlock *BB) const

Check if this value is used in the specified basic block.

LLVM_ABI unsigned

getNumUses () const

This method computes the number of uses of this Value.

void

addUse (Use &U)

This method should only be used by the Use class.

unsigned

getValueID () const

Return an ID for the concrete type of this object.

unsigned

getRawSubclassOptionalData () const

Return the raw optional flags value contained in this value.

void

clearSubclassOptionalData ()

Clear the optional flags contained in this value.

bool

hasSameSubclassOptionalData (const Value *V) const

Check the optional flags for equality.

bool

hasValueHandle () const

Return true if there is a value handle associated with this value.

bool

isUsedByMetadata () const

Return true if there is metadata referencing this value.

LLVM_ABI bool

isSwiftError () const

Return true if this value is a swifterror value.

LLVM_ABI const Value *

stripPointerCasts () const

Strip off pointer casts, all-zero GEPs and address space casts.

Value *

stripPointerCasts ()

LLVM_ABI const Value *

stripPointerCastsAndAliases () const

Strip off pointer casts, all-zero GEPs, address space casts, and aliases.

Value *

stripPointerCastsAndAliases ()

LLVM_ABI const Value *

stripPointerCastsSameRepresentation () const

Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same.

Value *

stripPointerCastsSameRepresentation ()

LLVM_ABI const Value *

stripPointerCastsForAliasAnalysis () const

Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info.

Value *

stripPointerCastsForAliasAnalysis ()

LLVM_ABI const Value *

stripInBoundsConstantOffsets () const

Strip off pointer casts and all-constant inbounds GEPs.

Value *

stripInBoundsConstantOffsets ()

LLVM_ABI const Value *

stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) const

Accumulate the constant offset this value has compared to a base pointer.

Value *

stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false)

const Value *

stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const

This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false.

Value *

stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset)

LLVM_ABI const Value *

stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) const

Strip off pointer casts and inbounds GEPs.

Value *

stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {})

LLVM_ABI std::optional< int64_t >

getPointerOffsetFrom (const Value *Other, const DataLayout &DL) const

If this ptr is provably equal to Other plus a constant offset, return that offset in bytes.

LLVM_ABI bool

canBeFreed () const

Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined.

LLVM_ABI uint64_t

getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull, bool &CanBeFreed) const

Returns the number of bytes known to be dereferenceable for the pointer value.

LLVM_ABI Align

getPointerAlignment (const DataLayout &DL) const

Returns an alignment of the pointer value.

LLVM_ABI const Value *

DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const

Translate PHI node to its predecessor from the given basic block.

Value *

DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB)

void

mutateType (Type *Ty)

Mutate the type of this Value to be of the specified type.

template

void

sortUseList (Compare Cmp)

Sort the use-list.

LLVM_ABI void

reverseUseList ()

Reverse the use-list.

LLVM_ABI void

print (raw_ostream &O, bool IsForDebug=false) const

Implement operator<< on Value.

LLVM_ABI void

print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) const

LLVM_ABI void

printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const

Print the name of this Value out to the specified raw_ostream.

LLVM_ABI void

printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const

Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< GlobalAlias, Options... >::type >

self_iterator

getIterator ()

reverse_self_iterator

getReverseIterator ()

std::enable_if_t< T::is_sentinel_tracking_explicit, bool >

isSentinel () const

Check whether this is the sentinel node.

Public Member Functions inherited from llvm::ilist_detail::node_parent_access< ilist_node_impl< ilist_detail::compute_node_options< GlobalAlias, Options... >::type >, ilist_detail::compute_node_options< GlobalAlias, Options... >::type::parent_ty >

const ilist_detail::compute_node_options< GlobalAlias, Options... >::type::parent_ty *

getParent () const

void

setParent (ilist_detail::compute_node_options< GlobalAlias, Options... >::type::parent_ty *Parent)

Static Public Member Functions

static LLVM_ABI GlobalAlias *

create (Type *Ty, unsigned AddressSpace, LinkageTypes Linkage, const Twine &Name, Constant *Aliasee, Module *Parent)

If a parent module is specified, the alias is automatically inserted into the end of the specified module's alias list.

static LLVM_ABI GlobalAlias *

create (Type *Ty, unsigned AddressSpace, LinkageTypes Linkage, const Twine &Name, Module *Parent)

static LLVM_ABI GlobalAlias *

create (Type *Ty, unsigned AddressSpace, LinkageTypes Linkage, const Twine &Name, GlobalValue *Aliasee)

static LLVM_ABI GlobalAlias *

create (LinkageTypes Linkage, const Twine &Name, GlobalValue *Aliasee)

static LLVM_ABI GlobalAlias *

create (const Twine &Name, GlobalValue *Aliasee)

static bool

isValidLinkage (LinkageTypes L)

static bool

classof (const Value *V)

Static Public Member Functions inherited from llvm::GlobalValue

static UnnamedAddr

getMinUnnamedAddr (UnnamedAddr A, UnnamedAddr B)

static LinkageTypes

getLinkOnceLinkage (bool ODR)

static LinkageTypes

getWeakLinkage (bool ODR)

static bool

isExternalLinkage (LinkageTypes Linkage)

static bool

isAvailableExternallyLinkage (LinkageTypes Linkage)

static bool

isLinkOnceAnyLinkage (LinkageTypes Linkage)

static bool

isLinkOnceODRLinkage (LinkageTypes Linkage)

static bool

isLinkOnceLinkage (LinkageTypes Linkage)

static bool

isWeakAnyLinkage (LinkageTypes Linkage)

static bool

isWeakODRLinkage (LinkageTypes Linkage)

static bool

isWeakLinkage (LinkageTypes Linkage)

static bool

isAppendingLinkage (LinkageTypes Linkage)

static bool

isInternalLinkage (LinkageTypes Linkage)

static bool

isPrivateLinkage (LinkageTypes Linkage)

static bool

isLocalLinkage (LinkageTypes Linkage)

static bool

isExternalWeakLinkage (LinkageTypes Linkage)

static bool

isCommonLinkage (LinkageTypes Linkage)

static bool

isValidDeclarationLinkage (LinkageTypes Linkage)

static bool

isInterposableLinkage (LinkageTypes Linkage)

Whether the definition of this global may be replaced by something non-equivalent at link time.

static bool

isDiscardableIfUnused (LinkageTypes Linkage)

Whether the definition of this global may be discarded if it is not used in its compilation unit.

static bool

isWeakForLinker (LinkageTypes Linkage)

Whether the definition of this global may be replaced at link time.

static StringRef

dropLLVMManglingEscape (StringRef Name)

If the given string begins with the GlobalValue name mangling escape character '\1', drop it.

static LLVM_ABI std::string

getGlobalIdentifier (StringRef Name, GlobalValue::LinkageTypes Linkage, StringRef FileName)

Return the modified name for a global value suitable to be used as the key for a global lookup (e.g.

static LLVM_ABI GUID

getGUIDAssumingExternalLinkage (StringRef GlobalName)

Return a 64-bit global unique ID constructed from the name of a global symbol.

static bool

classof (const Value *V)

Static Public Member Functions inherited from llvm::Constant

static bool

classof (const Value *V)

static LLVM_ABI Constant *

getNullValue (Type *Ty)

Constructor to create a '0' constant of arbitrary type.

static LLVM_ABI Constant *

getAllOnesValue (Type *Ty)

static LLVM_ABI Constant *

getIntegerValue (Type *Ty, const APInt &V)

Return the value for an integer or pointer constant, or a vector thereof, with the given scalar value.

static LLVM_ABI Constant *

replaceUndefsWith (Constant *C, Constant *Replacement)

Try to replace undefined constant C or undefined elements in C with Replacement.

static LLVM_ABI Constant *

mergeUndefsWith (Constant *C, Constant *Other)

Merges undefs of a Constant with another Constant, along with the undefs already present.

Static Public Member Functions inherited from llvm::User

static bool

classof (const Value *V)

Static Public Member Functions inherited from llvm::Value

static LLVM_ABI void

dropDroppableUse (Use &U)

Remove the droppable use U.

Additional Inherited Members

Public Types inherited from llvm::GlobalValue

enum

LinkageTypes {
ExternalLinkage = 0 , AvailableExternallyLinkage, LinkOnceAnyLinkage, LinkOnceODRLinkage,
WeakAnyLinkage, WeakODRLinkage, AppendingLinkage, InternalLinkage,
PrivateLinkage, ExternalWeakLinkage, CommonLinkage
}

An enumeration for the kinds of linkage for global values. More...

enum

VisibilityTypes { DefaultVisibility = 0 , HiddenVisibility, ProtectedVisibility }

An enumeration for the kinds of visibility of global values. More...

enum

DLLStorageClassTypes { DefaultStorageClass = 0 , DLLImportStorageClass = 1 , DLLExportStorageClass = 2 }

Storage classes of global values for PE targets. More...

enum

ThreadLocalMode {
NotThreadLocal = 0 , GeneralDynamicTLSModel, LocalDynamicTLSModel, InitialExecTLSModel,
LocalExecTLSModel
}

enum class

UnnamedAddr { None, Local, Global }

using

GUID = uint64_t

Declare a type to represent a global unique identifier for a global value.

Public Types inherited from llvm::User

using

op_iterator = Use*

using

const_op_iterator = const Use*

using

op_range = iterator_range<op_iterator>

using

const_op_range = iterator_range<const_op_iterator>

Public Types inherited from llvm::Value

enum

ValueTy

Concrete subclass of this. More...

using

use_iterator = use_iterator_impl<Use>

using

const_use_iterator = use_iterator_impl<const Use>

using

user_iterator = user_iterator_impl<User>

using

const_user_iterator = user_iterator_impl<const User>

Static Public Attributes inherited from llvm::Value

static constexpr unsigned

MaxAlignmentExponent = 32

The maximum alignment for instructions.

static constexpr uint64_t

MaximumAlignment = 1ULL << MaxAlignmentExponent

Protected Types inherited from llvm::Value

enum

: unsigned { NumUserOperandsBits = 27 }

The number of operands in the subclass. More...

Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< GlobalAlias, Options... >::type >

using

self_iterator

using

const_self_iterator

using

reverse_self_iterator

using

const_reverse_self_iterator

Protected Member Functions inherited from llvm::GlobalValue

GlobalValue (Type *Ty, ValueTy VTy, AllocInfo AllocInfo, LinkageTypes Linkage, const Twine &Name, unsigned AddressSpace)

unsigned

getGlobalValueSubClassData () const

void

setGlobalValueSubClassData (unsigned V)

void

setParent (Module *parent)

~GlobalValue ()

LLVM_ABI void

copyAttributesFrom (const GlobalValue *Src)

Copy all additional attributes (those not needed to create a GlobalValue) from the GlobalValue Src to this one.

Protected Member Functions inherited from llvm::Constant

Constant (Type *ty, ValueTy vty, AllocInfo AllocInfo)

~Constant ()=default

Protected Member Functions inherited from llvm::User

void *

operator new (size_t Size)=delete

LLVM_ABI void *

operator new (size_t Size, HungOffOperandsAllocMarker)

Allocate a User with an operand pointer co-allocated.

LLVM_ABI void *

operator new (size_t Size, IntrusiveOperandsAllocMarker allocTrait)

Allocate a User with the operands co-allocated.

LLVM_ABI void *

operator new (size_t Size, IntrusiveOperandsAndDescriptorAllocMarker allocTrait)

Allocate a User with the operands co-allocated.

User (Type *ty, unsigned vty, AllocInfo AllocInfo)

LLVM_ABI void

allocHungoffUses (unsigned N, bool IsPhi=false)

Allocate the array of Uses, followed by a pointer (with bottom bit set) to the User.

LLVM_ABI void

growHungoffUses (unsigned N, bool IsPhi=false)

Grow the number of hung off uses.

~User ()=default

template

Use &

Op ()

template

const Use &

Op () const

Protected Member Functions inherited from llvm::Value

LLVM_ABI

Value (Type *Ty, unsigned scid)

LLVM_ABI

~Value ()

Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID.

LLVM_ABI void

getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const

Appends all metadata attached to this value to MDs, sorting by KindID.

bool

hasMetadata () const

Return true if this value has any metadata attached to it.

LLVM_ABI bool

eraseMetadata (unsigned KindID)

Erase all metadata attachments with the given kind.

LLVM_ABI void

eraseMetadataIf (function_ref< bool(unsigned, MDNode *)> Pred)

Erase all metadata attachments matching the given predicate.

LLVM_ABI void

clearMetadata ()

Erase all metadata attached to this Value.

LLVM_ABI MDNode *

getMetadataImpl (unsigned KindID) const

Get metadata for the given kind, if any.

unsigned short

getSubclassDataFromValue () const

void

setValueSubclassData (unsigned short D)

MDNode *

getMetadata (unsigned KindID) const

Get the current metadata attachments for the given kind, if any.

LLVM_ABI MDNode *

getMetadata (StringRef Kind) const

LLVM_ABI void

getMetadata (unsigned KindID, SmallVectorImpl< MDNode * > &MDs) const

Appends all attachments with the given ID to MDs in insertion order.

LLVM_ABI void

getMetadata (StringRef Kind, SmallVectorImpl< MDNode * > &MDs) const

bool

hasMetadata (unsigned KindID) const

Return true if this value has the given type of metadata attached.

bool

hasMetadata (StringRef Kind) const

LLVM_ABI void

setMetadata (unsigned KindID, MDNode *Node)

Set a particular kind of metadata attachment.

LLVM_ABI void

setMetadata (StringRef Kind, MDNode *Node)

LLVM_ABI void

addMetadata (unsigned KindID, MDNode &MD)

Add a metadata attachment.

LLVM_ABI void

addMetadata (StringRef Kind, MDNode &MD)

Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< GlobalAlias, Options... >::type >

ilist_node_impl ()=default

Static Protected Member Functions inherited from llvm::User

template<int Idx, typename U>

static Use &

OpFrom (const U *that)

Protected Attributes inherited from llvm::GlobalValue

Type *

ValueType

unsigned

Linkage: 4

unsigned

Visibility: 2

unsigned

UnnamedAddrVal: 2

unsigned

DllStorageClass: 2

unsigned

ThreadLocal: 3

unsigned

HasLLVMReservedName: 1

True if the function's name starts with "llvm.".

unsigned

IsDSOLocal: 1

If true then there is a definition within the same linkage unit and that definition cannot be runtime preempted.

unsigned

HasPartition: 1

True if this symbol has a partition name assigned (see https://lld.llvm.org/Partitions.html).

unsigned

HasSanitizerMetadata: 1

True if this symbol has sanitizer metadata available.

Intrinsic::ID

IntID = (Intrinsic::ID)0U

The intrinsic ID for this subclass (which must be a Function).

Module *

Parent = nullptr

Protected Attributes inherited from llvm::Value

unsigned char

SubclassOptionalData: 7

Hold subclass data that can be dropped.

unsigned

NumUserOperands: NumUserOperandsBits

unsigned

IsUsedByMD: 1

unsigned

HasName: 1

unsigned

HasMetadata: 1

unsigned

HasHungOffUses: 1

unsigned

HasDescriptor: 1

Static Protected Attributes inherited from llvm::GlobalValue

static const unsigned

GlobalValueSubClassDataBits = 15

Definition at line 29 of file GlobalAlias.h.