class MemoryDef
Declaration
class MemoryDef : public MemoryUseOrDef { /* full declaration omitted */ };
Description
Represents a read-write access to memory, whether it is a must-alias, or a may-alias. In particular, the set of Instructions that will be represented by MemoryDef's is exactly the set of Instructions for which AliasAnalysis::getModRefInfo returns "Mod" or "ModRef". Note that, in order to provide def-def chains, all defs also have a use associated with them. This use points to the nearest reaching MemoryDef/MemoryPhi.
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:376
Inherits from: MemoryUseOrDef
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
- public MemoryDef(llvm::LLVMContext & C, llvm::MemoryAccess * DMA, llvm::Instruction * MI, llvm::BasicBlock * BB, unsigned int Ver)
- public static bool classof(const llvm::Value * MA)
- public unsigned int getID() const
- public llvm::MemoryAccess * getOptimized() const
- public bool isOptimized() const
- public void print(llvm::raw_ostream & OS) const
- public void resetOptimized()
- public void setOptimized(llvm::MemoryAccess * MA)
Inherited from MemoryUseOrDef:
- public classof
- public getDefiningAccess
- public getMemoryInst
- public getOptimized
- public getOptimizedAccessType
- public isOptimized
- public resetOptimized
- protected setDefiningAccess
- public setOptimized
- protected setOptimizedAccessType
Inherited from MemoryAccess:
- public classof
- public defs_begin
- public defs_begin
- public defs_end
- public defs_end
- public dump
- public getBlock
- public getDefsIterator
- public getDefsIterator
- protected getID
- public getIterator
- public getIterator
- public getReverseDefsIterator
- public getReverseDefsIterator
- public getReverseIterator
- public getReverseIterator
- public print
- protected setBlock
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
¶MemoryDef(llvm::LLVMContext& C,
llvm::MemoryAccess* DMA,
llvm::Instruction* MI,
llvm::BasicBlock* BB,
unsigned int Ver)
MemoryDef(llvm::LLVMContext& C,
llvm::MemoryAccess* DMA,
llvm::Instruction* MI,
llvm::BasicBlock* BB,
unsigned int Ver)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:382
Parameters
- llvm::LLVMContext& C
- llvm::MemoryAccess* DMA
- llvm::Instruction* MI
- llvm::BasicBlock* BB
- unsigned int Ver
¶static bool classof(const llvm::Value* MA)
static bool classof(const llvm::Value* MA)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:391
Parameters
- const llvm::Value* MA
¶unsigned int getID() const
unsigned int getID() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:415
¶llvm::MemoryAccess* getOptimized() const
llvm::MemoryAccess* getOptimized() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:400
¶bool isOptimized() const
bool isOptimized() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:404
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:413
Parameters
¶void resetOptimized()
void resetOptimized()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:408
¶void setOptimized(llvm::MemoryAccess* MA)
void setOptimized(llvm::MemoryAccess* MA)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:395