Jlm
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
IOBarrierElimination.cpp File Reference
#include <jlm/llvm/ir/operators/IOBarrier.hpp>
#include <jlm/llvm/ir/operators/lambda.hpp>
#include <jlm/llvm/ir/operators/Load.hpp>
#include <jlm/llvm/ir/operators/Store.hpp>
#include <jlm/llvm/opt/IOBarrierElimination.hpp>
#include <jlm/rvsdg/delta.hpp>
#include <jlm/rvsdg/gamma.hpp>
#include <jlm/rvsdg/lambda.hpp>
#include <jlm/rvsdg/MatchType.hpp>
#include <jlm/rvsdg/Phi.hpp>
#include <jlm/rvsdg/RvsdgModule.hpp>
#include <jlm/rvsdg/theta.hpp>
#include <jlm/rvsdg/traverser.hpp>
Include dependency graph for IOBarrierElimination.cpp:

Go to the source code of this file.

Classes

class  jlm::llvm::IOBarrierElimination::Statistics
 
class  jlm::llvm::IOBarrierElimination::Context
 

Namespaces

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

Functions

static std::vector< rvsdg::SimpleNode * > jlm::llvm::collectMemoryHoistBarrierNodes (rvsdg::Output &output)
 
static std::optional< rvsdg::SimpleNode * > jlm::llvm::selectMemoryHoistBarrierNode (const std::vector< rvsdg::SimpleNode * > &hoistBarrierNodes, const std::variant< rvsdg::Node *, rvsdg::Region * > ioStateOwner)
 
static void jlm::llvm::divertUsersToMemoryHoistBarrierNode (rvsdg::Output &output, rvsdg::SimpleNode &memoryHoistBarrierNode)
 
static std::optional< rvsdg::GammaNode::EntryVar > jlm::llvm::getIOStateEntryVar (const rvsdg::GammaNode &gammaNode)