|
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 |
Struct holding temporary data used during the creation of a single mod/ref summary
Definition at line 362 of file RegionAwareModRefSummarizer.cpp.
|
inlineexplicit |
Definition at line 364 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 420 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 443 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 390 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 412 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 406 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 459 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 450 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 436 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 371 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 399 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 383 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 427 of file RegionAwareModRefSummarizer.cpp.