|
Jlm
|

Public Member Functions | |
| Context (const PointsToGraph &ptg) | |
Public Attributes | |
| const PointsToGraph & | pointsToGraph |
| std::vector< util::HashSet< const rvsdg::LambdaNode * > > | SccFunctions |
| size_t | ExternalNodeSccIndex = 0 |
| std::vector< util::HashSet< size_t > > | SccCallTargets |
| std::unordered_map< const rvsdg::LambdaNode *, size_t > | FunctionToSccIndex |
| util::HashSet< const rvsdg::LambdaNode * > | FunctionsCallingSetjmp |
| std::vector< util::HashSet< PointsToGraph::NodeIndex > > | AllocasDeadInScc |
| util::HashSet< PointsToGraph::NodeIndex > | SimpleAllocas |
| std::unordered_map< const rvsdg::Region *, util::HashSet< PointsToGraph::NodeIndex > > | NonReentrantAllocas |
| ModRefSetIndex | ExternalModRefIndex = 0 |
| std::vector< util::HashSet< ModRefSetIndex > > | ModRefSetSimpleConstraints |
| std::unordered_map< ModRefSetIndex, const util::HashSet< PointsToGraph::NodeIndex > * > | ModRefSetBlocklists |
| size_t | numExtModRefSets = 0 |
| size_t | numExtModRefCompressed = 0 |
| size_t | numExtModRefKept = 0 |
| size_t | numLocalModRefSets = 0 |
| size_t | numLocalModRefKept = 0 |
Struct holding temporary data used during the creation of a single mod/ref summary
Definition at line 413 of file RegionAwareModRefSummarizer.cpp.
|
inlineexplicit |
Definition at line 415 of file RegionAwareModRefSummarizer.cpp.
| std::vector<util::HashSet<PointsToGraph::NodeIndex> > jlm::llvm::aa::RegionAwareModRefSummarizer::Context::AllocasDeadInScc |
For each SCC, only allocas defined within the SCC, or within a predecessor of the SCC, can possibly be live. All other allocas are considered dead in the SCC.
Assigned in FindAllocasDeadInSccs(). Remains constant after.
Definition at line 471 of file RegionAwareModRefSummarizer.cpp.
| ModRefSetIndex jlm::llvm::aa::RegionAwareModRefSummarizer::Context::ExternalModRefIndex = 0 |
A ModRefSet containing all MemoryNodes that can be read or written to from external functions.
Assigned in CreateExternalModRefSet(). Remains constant after.
Definition at line 494 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::ExternalNodeSccIndex = 0 |
The index of the SCC in the call graph that represent containing all external functions
Assigned in createCallGraph(). Remains constant after.
Definition at line 441 of file RegionAwareModRefSummarizer.cpp.
| util::HashSet<const rvsdg::LambdaNode *> jlm::llvm::aa::RegionAwareModRefSummarizer::Context::FunctionsCallingSetjmp |
The set of functions that call setjmp directly. Assigned in createCallGraph(). Remains constant after.
Definition at line 463 of file RegionAwareModRefSummarizer.cpp.
| std::unordered_map<const rvsdg::LambdaNode *, size_t> jlm::llvm::aa::RegionAwareModRefSummarizer::Context::FunctionToSccIndex |
A mapping from functions to the index of the SCC they belong to in the call graph
Assigned in createCallGraph(). Remains constant after.
Definition at line 457 of file RegionAwareModRefSummarizer.cpp.
| std::unordered_map<ModRefSetIndex, const util::HashSet<PointsToGraph::NodeIndex> *> jlm::llvm::aa::RegionAwareModRefSummarizer::Context::ModRefSetBlocklists |
Blocklists in the ModRefSet constraint graphs. During solving, a MemoryNode x that is about to be propagated to a ModRefSet a will be skipped if x is in the Blocklist associated with a. The pointer to the blocklist must remain valid until solving is finished.
Definition at line 510 of file RegionAwareModRefSummarizer.cpp.
| std::vector<util::HashSet<ModRefSetIndex> > jlm::llvm::aa::RegionAwareModRefSummarizer::Context::ModRefSetSimpleConstraints |
Simple edges in the ModRefSet constraint graph. A simple edge a -> b indicates that the ModRefSet b should contain everything in a. ModRefSetSimpleEdges[a] contains b, as well as any other simple edge successors.
Definition at line 501 of file RegionAwareModRefSummarizer.cpp.
| std::unordered_map<const rvsdg::Region *, util::HashSet<PointsToGraph::NodeIndex> > jlm::llvm::aa::RegionAwareModRefSummarizer::Context::NonReentrantAllocas |
For each region, this field contains the set of allocas defined in the region, that have been shown to be non-reentrant.
Assigned in CreateNonReentrantAllocaSets(). Remains constant after.
Definition at line 487 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::numExtModRefCompressed = 0 |
Definition at line 514 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::numExtModRefKept = 0 |
Definition at line 515 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::numExtModRefSets = 0 |
Definition at line 513 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::numLocalModRefKept = 0 |
Definition at line 517 of file RegionAwareModRefSummarizer.cpp.
| size_t jlm::llvm::aa::RegionAwareModRefSummarizer::Context::numLocalModRefSets = 0 |
Definition at line 516 of file RegionAwareModRefSummarizer.cpp.
| const PointsToGraph& jlm::llvm::aa::RegionAwareModRefSummarizer::Context::pointsToGraph |
The points to graph used to create the Mod/Ref summary.
Definition at line 422 of file RegionAwareModRefSummarizer.cpp.
| std::vector<util::HashSet<size_t> > jlm::llvm::aa::RegionAwareModRefSummarizer::Context::SccCallTargets |
For each SCC in the call graph, the set of SCCs it targets using calls. Since SCCs are ordered in reverse topological order, an SCC never targets higher indices. If there is any possibility of recursion within an SCC, it also targets itself.
Assigned in createCallGraph(). Remains constant after.
Definition at line 450 of file RegionAwareModRefSummarizer.cpp.
| std::vector<util::HashSet<const rvsdg::LambdaNode *> > jlm::llvm::aa::RegionAwareModRefSummarizer::Context::SccFunctions |
The set of functions belonging to each SCC in the call graph. The SCCs are ordered in reverse topological order, so if function a() calls b(), and they are not in the same SCC, the SCC containing a() comes after the SCC containing b().
External functions are not included in these sets, see ExternalNodeSccIndex.
Assigned in createCallGraph(). Remains constant after.
Definition at line 434 of file RegionAwareModRefSummarizer.cpp.
| util::HashSet<PointsToGraph::NodeIndex> jlm::llvm::aa::RegionAwareModRefSummarizer::Context::SimpleAllocas |
The set of all Simple Allocas in the module.
Assigned in CreateSimpleAllocaSet(). Remains constant after.
Definition at line 478 of file RegionAwareModRefSummarizer.cpp.