class MemoryUse
Declaration
class MemoryUse : public MemoryUseOrDef { /* full declaration omitted */ };
Description
Represents read-only accesses to memory In particular, the set of Instructions that will be represented by MemoryUse's is exactly the set of Instructions for which AliasAnalysis::getModRefInfo returns "Ref".
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:326
Inherits from: MemoryUseOrDef
Member Variables
- private unsigned int OptimizedID = INVALID_MEMORYACCESS_ID
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
- public MemoryUse(llvm::LLVMContext & C, llvm::MemoryAccess * DMA, llvm::Instruction * MI, llvm::BasicBlock * BB)
- public static bool classof(const llvm::Value * MA)
- private static void deleteMe(llvm::DerivedUser * Self)
- 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 * DMA)
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 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
¶MemoryUse(llvm::LLVMContext& C,
llvm::MemoryAccess* DMA,
llvm::Instruction* MI,
llvm::BasicBlock* BB)
MemoryUse(llvm::LLVMContext& C,
llvm::MemoryAccess* DMA,
llvm::Instruction* MI,
llvm::BasicBlock* BB)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:330
Parameters
¶static bool classof(const llvm::Value* MA)
static bool classof(const llvm::Value* MA)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:338
Parameters
- const llvm::Value* MA
¶static void deleteMe(llvm::DerivedUser* Self)
static void deleteMe(llvm::DerivedUser* Self)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:368
Parameters
- llvm::DerivedUser* Self
¶llvm::MemoryAccess* getOptimized() const
llvm::MemoryAccess* getOptimized() const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:356
¶bool isOptimized() const
bool isOptimized() const
Description
Whether the MemoryUse is optimized. If ensureOptimizedUses() was called, uses will usually be optimized, but this is not guaranteed (e.g. due to invalidation and optimization limits.)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:352
¶void print(llvm::raw_ostream& OS) const
void print(llvm::raw_ostream& OS) const
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:342
Parameters
¶void resetOptimized()
void resetOptimized()
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:360
¶void setOptimized(llvm::MemoryAccess* DMA)
void setOptimized(llvm::MemoryAccess* DMA)
Declared at: llvm/include/llvm/Analysis/MemorySSA.h:344
Parameters
- llvm::MemoryAccess* DMA