Jlm
Namespaces | Functions | Variables
PointerObjectSet.cpp File Reference
#include <jlm/llvm/opt/alias-analyses/PointerObjectSet.hpp>
#include <jlm/llvm/opt/alias-analyses/DifferencePropagation.hpp>
#include <jlm/llvm/opt/alias-analyses/LazyCycleDetection.hpp>
#include <jlm/llvm/opt/alias-analyses/OnlineCycleDetection.hpp>
#include <jlm/util/Worklist.hpp>
#include <limits>
#include <queue>
#include <variant>
Include dependency graph for PointerObjectSet.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::llvm
 Global memory state passed between functions.
 
 jlm::llvm::aa
 

Functions

template<typename MarkAsPointeesEscaping , typename MarkAsPointsToExternal >
void jlm::llvm::aa::HandleCallingExternalFunction (PointerObjectSet &set, const rvsdg::SimpleNode &callNode, MarkAsPointeesEscaping &markAsPointeesEscaping, MarkAsPointsToExternal &markAsPointsToExternal)
 
template<typename MarkAsPointeesEscaping , typename MarkAsPointsToExternal >
static void jlm::llvm::aa::HandleCallingImportedFunction (PointerObjectSet &set, const rvsdg::SimpleNode &callNode, [[maybe_unused]] PointerObjectIndex imported, MarkAsPointeesEscaping &markAsPointeesEscaping, MarkAsPointsToExternal &markAsPointsToExternal)
 
template<typename MakeSupersetFunctor >
static void jlm::llvm::aa::HandleLambdaCallParameters (PointerObjectSet &set, const rvsdg::SimpleNode &callNode, const rvsdg::LambdaNode &lambdaNode, MakeSupersetFunctor &makeSuperset)
 
template<typename MakeSupersetFunctor >
static void jlm::llvm::aa::HandleLambdaCallReturnValues (PointerObjectSet &set, const rvsdg::SimpleNode &callNode, const rvsdg::LambdaNode &lambdaNode, MakeSupersetFunctor &makeSuperset)
 
template<typename MakeSupersetFunctor >
static void jlm::llvm::aa::HandleCallingLambdaFunction (PointerObjectSet &set, const rvsdg::SimpleNode &callNode, PointerObjectIndex lambda, MakeSupersetFunctor &makeSuperset)
 
template<typename MarkAsPointeesEscapingFunctor , typename MarkAsPointsToExternalFunctor >
static void jlm::llvm::aa::HandleEscapedFunction (PointerObjectSet &set, PointerObjectIndex lambda, MarkAsPointeesEscapingFunctor &markAsPointeesEscaping, MarkAsPointsToExternalFunctor &markAsPointsToExternal)
 
static std::string jlm::llvm::aa::CreateSubsetGraphNodeLabel (PointerObjectSet &set, PointerObjectIndex index)
 
static void jlm::llvm::aa::CreateSubsetGraphNodes (PointerObjectSet &set, util::graph::Graph &graph)
 
static void jlm::llvm::aa::CreateSubsetGraphEdges (const PointerObjectSet &set, const std::vector< PointerObjectConstraintSet::ConstraintVariant > &constraints, util::graph::Graph &graph)
 
static void jlm::llvm::aa::LabelFunctionsArgumentsAndReturnValues (PointerObjectSet &set, util::graph::Graph &graph)
 
static std::vector< int64_t > jlm::llvm::aa::AssignOvsEquivalenceSetLabels (std::vector< util::HashSet< PointerObjectIndex >> &successors, size_t numSccs, std::vector< size_t > &sccIndex, std::vector< size_t > &reverseTopologicalOrder, std::vector< bool > &sccHasDirectNodesOnly)
 

Variables

static constexpr bool jlm::llvm::aa::ENABLE_UNIFICATION = true