6#ifndef JLM_LLVM_OPT_STOREVALUEFORWARDING_HPP
7#define JLM_LLVM_OPT_STOREVALUEFORWARDING_HPP
109 std::optional<TracedDelta>
static jlm::util::StatisticsCollector statisticsCollector
Store Value Forwarding Statistics class.
Store Value Forwarding Optimization.
void processLoadWithoutMemoryStates(rvsdg::SimpleNode &loadNode)
void processLoad(rvsdg::SimpleNode &loadNode)
~StoreValueForwarding() noexcept override
std::unique_ptr< Context > context_
void forwardValueOrigins(LoadTracingInfo &tracingInfo)
void connectUnroutedLoopPosts(LoadTracingInfo &tracingInfo)
rvsdg::Output & getValueOriginOutput(ValueOrigin storeValueOrigin, rvsdg::Region &targetRegion, LoadTracingInfo &tracingInfo)
void processLoadWithMemoryStates(rvsdg::SimpleNode &loadNode)
void forwardLoadWithoutMemoryStates(rvsdg::SimpleNode &loadNode, const TracedDelta &tracedDelta)
rvsdg::Output & routeOutputToRegion(rvsdg::Output &output, rvsdg::Region ®ion)
void Run(rvsdg::RvsdgModule &module, util::StatisticsCollector &statisticsCollector) override
Perform RVSDG transformation.
std::optional< TracedDelta > traceLoadWithoutMemoryStates(const rvsdg::SimpleNode &loadNode)
void traverseInterProceduralRegion(rvsdg::Region ®ion)
void traverseIntraProceduralRegion(rvsdg::Region ®ion)
Represent acyclic RVSDG subgraphs.
Global memory state passed between functions.
std::vector< GetElementPtrOperation::Constant > gepConstants