Jlm
Loading...
Searching...
No Matches
Namespaces | Functions
Store.cpp File Reference
#include <jlm/llvm/ir/operators/alloca.hpp>
#include <jlm/llvm/ir/operators/delta.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/RvsdgModule.hpp>
#include <jlm/llvm/ir/Trace.hpp>
#include <jlm/llvm/ir/types.hpp>
#include <jlm/rvsdg/delta.hpp>
#include <jlm/rvsdg/simple-node.hpp>
#include <jlm/util/HashSet.hpp>
Include dependency graph for Store.cpp:

Go to the source code of this file.

Namespaces

namespace  jlm
 
namespace  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_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_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)
 
static std::optional< size_t > jlm::llvm::getAllocationSizeInBytes (const rvsdg::Output &output)