class MemoryAccess
Declaration
class MemoryAccess : public DerivedUser,
public ilist_node,
public ilist_node { /* full declaration omitted */ };
Description
Extension point for the Value hierarchy. All classes outside of lib/IR that wish to inherit from User should instead inherit from DerivedUser instead. Inheriting from this class is discouraged. Generally speaking, Value is the base of a closed class hierarchy that can't be extended by code outside of lib/IR. This class creates a loophole that allows classes outside of lib/IR to extend User to leverage its use/def list machinery.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:138
Inherits from: DerivedUser, ilist_node, ilist_node
Member Variables
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
- protected MemoryAccess(llvm::LLVMContext & C, unsigned int Vty, llvm::DerivedUser::DeleteValueTy DeleteValue, llvm::BasicBlock * BB, unsigned int NumOperands)
- public MemoryAccess(const llvm::MemoryAccess &)
- public static bool classof(const llvm::Value * V)
- public llvm::memoryaccess_def_iterator defs_begin()
- public llvm::const_memoryaccess_def_iterator defs_begin() const
- public llvm::memoryaccess_def_iterator defs_end()
- public llvm::const_memoryaccess_def_iterator defs_end() const
- public void dump() const
- public llvm::BasicBlock * getBlock() const
- public DefsOnlyType::const_self_iterator getDefsIterator() const
- public DefsOnlyType::self_iterator getDefsIterator()
- protected inline unsigned int getID() const
- public AllAccessType::const_self_iterator getIterator() const
- public AllAccessType::self_iterator getIterator()
- public DefsOnlyType::reverse_self_iterator getReverseDefsIterator()
- public DefsOnlyType::const_reverse_self_iterator getReverseDefsIterator() const
- public AllAccessType::const_reverse_self_iterator getReverseIterator() const
- public AllAccessType::reverse_self_iterator getReverseIterator()
- public void print(llvm::raw_ostream & OS) const
- protected void setBlock(llvm::BasicBlock * BB)
- protected ~MemoryAccess()
Inherited from DerivedUser:
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
¶MemoryAccess(
llvm::LLVMContext& C,
unsigned int Vty,
llvm::DerivedUser::DeleteValueTy DeleteValue,
llvm::BasicBlock* BB,
unsigned int NumOperands)
MemoryAccess(
llvm::LLVMContext& C,
unsigned int Vty,
llvm::DerivedUser::DeleteValueTy DeleteValue,
llvm::BasicBlock* BB,
unsigned int NumOperands)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:219
Parameters
- llvm::LLVMContext& C
- unsigned int Vty
- llvm::DerivedUser::DeleteValueTy DeleteValue
- llvm::BasicBlock* BB
- unsigned int NumOperands
¶MemoryAccess(const llvm::MemoryAccess&)
MemoryAccess(const llvm::MemoryAccess&)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:148
Parameters
- const llvm::MemoryAccess&
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:155
Parameters
- const llvm::Value* V
¶llvm::memoryaccess_def_iterator defs_begin()
llvm::memoryaccess_def_iterator defs_begin()
Description
This iterator walks over all of the defs in a given MemoryAccess. For MemoryPhi nodes, this walks arguments. For MemoryUse/MemoryDef, this walks the defining access.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:172
¶llvm::const_memoryaccess_def_iterator defs_begin()
const
llvm::const_memoryaccess_def_iterator defs_begin()
const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:173
¶llvm::memoryaccess_def_iterator defs_end()
llvm::memoryaccess_def_iterator defs_end()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:174
¶llvm::const_memoryaccess_def_iterator defs_end()
const
llvm::const_memoryaccess_def_iterator defs_end()
const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:175
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:163
¶llvm::BasicBlock* getBlock() const
llvm::BasicBlock* getBlock() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:160
¶DefsOnlyType::const_self_iterator
getDefsIterator() const
DefsOnlyType::const_self_iterator
getDefsIterator() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:194
¶DefsOnlyType::self_iterator getDefsIterator()
DefsOnlyType::self_iterator getDefsIterator()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:191
¶inline unsigned int getID() const
inline unsigned int getID() const
Description
Used for debugging and tracking things about MemoryAccesses. Guaranteed unique among MemoryAccesses, no guarantees otherwise.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:217
¶AllAccessType::const_self_iterator getIterator()
const
AllAccessType::const_self_iterator getIterator()
const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:182
¶AllAccessType::self_iterator getIterator()
AllAccessType::self_iterator getIterator()
Description
Get the iterators for the all access list and the defs only list We default to the all access list.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:179
¶DefsOnlyType::reverse_self_iterator
getReverseDefsIterator()
DefsOnlyType::reverse_self_iterator
getReverseDefsIterator()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:197
¶DefsOnlyType::const_reverse_self_iterator
getReverseDefsIterator() const
DefsOnlyType::const_reverse_self_iterator
getReverseDefsIterator() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:200
¶AllAccessType::const_reverse_self_iterator
getReverseIterator() const
AllAccessType::const_reverse_self_iterator
getReverseIterator() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:188
¶AllAccessType::reverse_self_iterator
getReverseIterator()
AllAccessType::reverse_self_iterator
getReverseIterator()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:185
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:162
Parameters
¶void setBlock(llvm::BasicBlock* BB)
void setBlock(llvm::BasicBlock* BB)
Description
Used by MemorySSA to change the block of a MemoryAccess when it is moved.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:213
Parameters
- llvm::BasicBlock* BB
¶~MemoryAccess()
~MemoryAccess()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:225