Jlm
Namespaces | Functions
Load.cpp File Reference
#include <jlm/llvm/ir/operators/alloca.hpp>
#include <jlm/llvm/ir/operators/IOBarrier.hpp>
#include <jlm/llvm/ir/operators/Load.hpp>
#include <jlm/llvm/ir/operators/MemoryStateOperations.hpp>
#include <jlm/llvm/ir/operators/Store.hpp>
#include <jlm/llvm/ir/Trace.hpp>
#include <jlm/util/HashSet.hpp>
Include dependency graph for Load.cpp:

Go to the source code of this file.

Namespaces

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

Functions

static bool jlm::llvm::is_load_alloca_reducible (const std::vector< rvsdg::Output * > &operands)
 
static bool jlm::llvm::is_reducible_state (const rvsdg::Output *state, const rvsdg::Node *loadalloca)
 
static bool jlm::llvm::is_load_store_state_reducible (const LoadNonVolatileOperation &op, const std::vector< rvsdg::Output * > &operands)
 
static bool jlm::llvm::is_multiple_origin_reducible (const std::vector< rvsdg::Output * > &operands)
 
static std::vector< rvsdg::Output * > jlm::llvm::perform_load_alloca_reduction (const LoadNonVolatileOperation &op, const std::vector< rvsdg::Output * > &operands)
 
static std::vector< rvsdg::Output * > jlm::llvm::perform_load_store_state_reduction (const LoadNonVolatileOperation &op, const std::vector< rvsdg::Output * > &operands)
 
static std::vector< rvsdg::Output * > jlm::llvm::perform_multiple_origin_reduction (const LoadNonVolatileOperation &op, const std::vector< rvsdg::Output * > &operands)