Provides a lazy, caching interface for making common memory aliasing information queries, backed by LLVM's alias analysis passes.
Synopsis
Declared in <llvm/Analysis/MemoryDependenceAnalysis.h>
class MemoryDependenceResults;
Description
The dependency information returned is somewhat unusual, but is pragmatic. If queried about a store or call that might modify memory, the analysis will return the instruction[s]that may either load from that memory or store to it. If queried with a load or call that can never modify memory, the analysis will return calls and stores that might modify the pointer, but generally does not return loads unless a) they are volatile, or b) they load from must‐aliased pointers. Returning a dependence on must‐alias'd pointers instead of all pointers interacts well with the internal caching mechanism.
Type Aliases
Name |
Description |
Vector of per‐block non‐local dependence cache entries. |
Member Functions
Name |
Description |
|
Construct memory dependence results using the given analyses and scan limit. |
Return the clobber offset to dependent instruction. |
|
Return the default per‐block instruction scan limit. |
|
Returns the instruction on which a memory operation depends. |
|
Find a dependence among invariant.group loads/stores of the same pointer. |
|
Perform a full dependency query for the specified call, returning the set of blocks that the value is potentially live across. |
|
Return the set of instructions that define or clobber |
|
|
|
Scan for a simple pointer dependence without invariant‐group handling. |
|
Handle invalidation in the new PM. |
|
Invalidates cached information about the specified pointer, because it may be too conservative in memdep. |
|
Clears the PredIteratorCache info. |
|
Removes an instruction from the dependence analysis, updating the dependence of instructions that previously depended on it. |
Created with MrDocs