Mod/Ref summary of region-aware mod/ref summarizer.
More...
Mod/Ref summary of region-aware mod/ref summarizer.
Definition at line 498 of file RegionAwareModRefSummarizer.cpp.
◆ RegionAwareModRefSummary() [1/2]
| jlm::llvm::aa::RegionAwareModRefSummary::RegionAwareModRefSummary |
( |
const PointsToGraph & |
pointsToGraph | ) |
|
|
inlineexplicit |
◆ RegionAwareModRefSummary() [2/2]
◆ addExplicitMemoryNodeToSet()
◆ addMemoryNodeToSet()
Adds the given ptgNode the ModRefSet with the given index. Performs checks to avoid adding doubled-up memory nodes.
- Parameters
-
| index | the index of the ModRefSet being added to |
| ptgNode | the index of the memory node in the points-to graph |
| modRefEffect | the effect the ModRefSet has on the memory node |
- Returns
- true if the ModRefSet grew, false otherwise.
Definition at line 569 of file RegionAwareModRefSummarizer.cpp.
◆ Create()
◆ createModRefSet()
| ModRefSetIndex jlm::llvm::aa::RegionAwareModRefSummary::createModRefSet |
( |
| ) |
|
|
inlineprivate |
◆ getAllSetsInFunction()
◆ getExternModRefSet()
| ModRefSetIndex jlm::llvm::aa::RegionAwareModRefSummary::getExternModRefSet |
( |
| ) |
const |
|
inlinenoexcept |
The ModRefSummary has one set representing external functions, containing all memory nodes that can be referenced or modified by external functions. This set also includes memory operations performed in functions that can be called from external functions, so will in practice contain most memory operations in the module. The exceptions are allocas that are provably not involved in recursion, since any such alloca that is affected by a call to an external function will be dead by the time the call returns.
- Returns
- the index of the ModRefSet representing external functions
Definition at line 610 of file RegionAwareModRefSummarizer.cpp.
◆ GetGammaEntryModRef()
◆ GetGammaExitModRef()
◆ GetLambdaEntryModRef()
◆ GetLambdaExitModRef()
◆ getModRefSet() [1/2]
◆ getModRefSet() [2/2]
◆ getModRefSetDebugString()
| std::string jlm::llvm::aa::RegionAwareModRefSummary::getModRefSetDebugString |
( |
ModRefSetIndex |
index | ) |
const |
|
inline |
◆ getOrCreateSetForNode()
Get the ModRefSet associated with the given node, or creates one if none exists.
- Parameters
-
| node | the RVSDG node to be represented by a ModRefSet |
| lambdaNode | the function the RVSDG node belongs to. |
- Returns
- the index of the exisiting or created ModRefSet representing the node
Definition at line 636 of file RegionAwareModRefSummarizer.cpp.
◆ GetPointsToGraph()
| const PointsToGraph & jlm::llvm::aa::RegionAwareModRefSummary::GetPointsToGraph |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ getSetForNode()
◆ GetSimpleNodeModRef()
Provides the ModRefSet containing memory nodes that may be modified or referenced by the given simple node.
The simple node can be any operation that reads from memory, or produces value of memory, e.g.:
- Parameters
-
| node | the node operating on memory |
- Returns
- the Mod/Ref set of the node.
Implements jlm::llvm::aa::ModRefSummary.
Definition at line 700 of file RegionAwareModRefSummarizer.cpp.
◆ GetThetaModRef()
◆ hasSetForNode()
| bool jlm::llvm::aa::RegionAwareModRefSummary::hasSetForNode |
( |
const rvsdg::Node & |
node | ) |
const |
|
inline |
◆ markSetAsCallingExternalFunction()
| bool jlm::llvm::aa::RegionAwareModRefSummary::markSetAsCallingExternalFunction |
( |
ModRefSetIndex |
index | ) |
|
|
inline |
◆ markSetAsModifyingExternal()
| bool jlm::llvm::aa::RegionAwareModRefSummary::markSetAsModifyingExternal |
( |
ModRefSetIndex |
index, |
|
|
size_t |
minSize |
|
) |
| |
|
inline |
◆ markSetAsReferencingExternal()
| bool jlm::llvm::aa::RegionAwareModRefSummary::markSetAsReferencingExternal |
( |
ModRefSetIndex |
index, |
|
|
size_t |
minSize |
|
) |
| |
|
inline |
◆ NumModRefSets()
| size_t jlm::llvm::aa::RegionAwareModRefSummary::NumModRefSets |
( |
| ) |
const |
|
inlinenoexcept |
◆ operator=()
◆ externModRefSet_
| ModRefSetIndex jlm::llvm::aa::RegionAwareModRefSummary::externModRefSet_ |
|
private |
◆ modRefSets_
◆ modRefSetsInFunction_
◆ nodeMap_
Map from nodes that have memory side effects, to their ModRefSet. Includes nodes like loads, stores, memcpy, free and calls. Also includes structural nodes like gamma, theta and lambda.
Definition at line 773 of file RegionAwareModRefSummarizer.cpp.
◆ pointsToGraph_
| const PointsToGraph& jlm::llvm::aa::RegionAwareModRefSummary::pointsToGraph_ |
|
private |
The documentation for this class was generated from the following file: