Jlm
Namespaces | Functions
Store.cpp File Reference
#include <jlm/llvm/ir/operators/alloca.hpp>
#include <jlm/llvm/ir/operators/IOBarrier.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 Store.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_store_mux_reducible (const std::vector< jlm::rvsdg::Output * > &operands)
 
static bool jlm::llvm::is_store_store_reducible (const StoreNonVolatileOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
static bool jlm::llvm::is_store_alloca_reducible (const std::vector< jlm::rvsdg::Output * > &operands)
 
static bool jlm::llvm::is_multiple_origin_reducible (const std::vector< jlm::rvsdg::Output * > &operands)
 
static std::vector< jlm::rvsdg::Output * > jlm::llvm::perform_store_mux_reduction (const StoreNonVolatileOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
static std::vector< jlm::rvsdg::Output * > jlm::llvm::perform_store_store_reduction (const StoreNonVolatileOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
static std::vector< jlm::rvsdg::Output * > jlm::llvm::perform_store_alloca_reduction (const StoreNonVolatileOperation &op, const std::vector< jlm::rvsdg::Output * > &operands)
 
static std::vector< jlm::rvsdg::Output * > jlm::llvm::perform_multiple_origin_reduction (const StoreNonVolatileOperation &operation, const std::vector< jlm::rvsdg::Output * > &operands)