6 #ifndef JLM_LLVM_BACKEND_RVSDGTOIPGRAPHCONVERTER_HPP
7 #define JLM_LLVM_BACKEND_RVSDGTOIPGRAPHCONVERTER_HPP
33 class ControlFlowGraph;
35 class InterProceduralGraphModule;
36 class LlvmRvsdgModule;
59 std::unique_ptr<InterProceduralGraphModule>
62 static std::unique_ptr<InterProceduralGraphModule>
95 std::unique_ptr<ControlFlowGraph>
101 std::unique_ptr<DataNodeInit>
std::unique_ptr< DataNodeInit > CreateInitialization(const rvsdg::DeltaNode &deltaNode)
RvsdgToIpGraphConverter()
RvsdgToIpGraphConverter(const RvsdgToIpGraphConverter &)=delete
std::unique_ptr< Context > Context_
std::unique_ptr< InterProceduralGraphModule > ConvertModule(LlvmRvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector)
static std::unique_ptr< InterProceduralGraphModule > CreateAndConvertModule(LlvmRvsdgModule &rvsdgModule, util::StatisticsCollector &statisticsCollector)
void ConvertDeltaNode(const rvsdg::DeltaNode &deltaNode)
static bool RequiresSsaPhiOperation(const rvsdg::ThetaNode::LoopVar &loopVar, const Variable &v)
RvsdgToIpGraphConverter(RvsdgToIpGraphConverter &&)=delete
~RvsdgToIpGraphConverter()
void ConvertImports(const rvsdg::Graph &graph)
void ConvertNode(const rvsdg::Node &node)
void ConvertRegion(rvsdg::Region ®ion)
void ConvertThetaNode(const rvsdg::ThetaNode &thetaNode)
RvsdgToIpGraphConverter & operator=(RvsdgToIpGraphConverter &&)=delete
void ConvertNodes(const rvsdg::Graph &graph)
void ConvertLambdaNode(const rvsdg::LambdaNode &lambdaNode)
RvsdgToIpGraphConverter & operator=(const RvsdgToIpGraphConverter &)=delete
void ConvertSimpleNode(const rvsdg::SimpleNode &simpleNode)
void ConvertGammaNode(const rvsdg::GammaNode &gammaNode)
void ConvertPhiNode(const rvsdg::PhiNode &phiNode)
std::unique_ptr< ControlFlowGraph > CreateControlFlowGraph(const rvsdg::LambdaNode &lambda)
Conditional operator / pattern matching.
A phi node represents the fixpoint of mutually recursive definitions.
Represent acyclic RVSDG subgraphs.
Global memory state passed between functions.
Description of a loop-carried variable.