Jlm
Classes | Namespaces | Functions
unroll.cpp File Reference
#include <jlm/llvm/ir/operators.hpp>
#include <jlm/llvm/ir/RvsdgModule.hpp>
#include <jlm/llvm/opt/unroll.hpp>
#include <jlm/rvsdg/gamma.hpp>
#include <jlm/rvsdg/traverser.hpp>
#include <jlm/util/Statistics.hpp>
#include <jlm/util/time.hpp>
Include dependency graph for unroll.cpp:

Go to the source code of this file.

Classes

class  jlm::llvm::LoopUnrolling::Statistics
 

Namespaces

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

Functions

static bool jlm::llvm::is_eqcmp (const rvsdg::Operation &op)
 
static bool jlm::llvm::is_theta_invariant (const jlm::rvsdg::Output *output)
 
static rvsdg::Output * jlm::llvm::push_from_theta (jlm::rvsdg::Output *output)
 
static bool jlm::llvm::is_idv (jlm::rvsdg::Input *input)
 
static void jlm::llvm::unroll_body (const rvsdg::ThetaNode *theta, rvsdg::Region *target, rvsdg::SubstitutionMap &smap, size_t factor)
 
static void jlm::llvm::copy_body_and_unroll (const rvsdg::ThetaNode *theta, size_t factor)
 
static void jlm::llvm::unroll_theta (const LoopUnrollInfo &ui, rvsdg::SubstitutionMap &smap, size_t factor)
 
static void jlm::llvm::add_remainder (const LoopUnrollInfo &ui, rvsdg::SubstitutionMap &smap, size_t factor)
 
static void jlm::llvm::unroll_known_theta (const LoopUnrollInfo &ui, size_t factor)
 
static jlm::rvsdg::Outputjlm::llvm::create_unrolled_gamma_predicate (const LoopUnrollInfo &ui, size_t factor)
 
static jlm::rvsdg::Outputjlm::llvm::create_unrolled_theta_predicate (rvsdg::Region *, const rvsdg::SubstitutionMap &smap, const LoopUnrollInfo &ui, size_t factor)
 
static jlm::rvsdg::Outputjlm::llvm::create_residual_gamma_predicate (const rvsdg::SubstitutionMap &smap, const LoopUnrollInfo &ui)
 
static void jlm::llvm::unroll_unknown_theta (const LoopUnrollInfo &ui, size_t factor)
 
void jlm::llvm::unroll (rvsdg::ThetaNode *otheta, size_t factor)
 
static bool jlm::llvm::unroll (rvsdg::Region *region, size_t factor)