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

Go to the source code of this file.

Classes

class  jlm::hls::CommonNodeElimination::Statistics
 
class  jlm::hls::Context
 
class  jlm::hls::VisitorSet
 

Namespaces

 jlm
 
 jlm::hls
 

Typedefs

typedef std::unordered_set< jlm::rvsdg::Output * > jlm::hls::congruence_set
 

Functions

static bool jlm::hls::congruent (Output *o1, Output *o2, VisitorSet &vs, Context &ctx)
 
static bool jlm::hls::congruent (jlm::rvsdg::Output *o1, jlm::rvsdg::Output *o2, Context &ctx)
 
static void jlm::hls::mark_arguments (StructuralInput *i1, StructuralInput *i2, Context &ctx)
 
static void jlm::hls::mark (jlm::rvsdg::Region *, Context &)
 
static void jlm::hls::mark_gamma (const rvsdg::GammaNode *node, Context &ctx)
 
static void jlm::hls::mark_theta (const rvsdg::ThetaNode *theta, Context &ctx)
 
static void jlm::hls::mark_loop (const LoopNode *loop, Context &ctx)
 
static void jlm::hls::mark_lambda (const rvsdg::LambdaNode *node, Context &ctx)
 
static void jlm::hls::mark_phi (const rvsdg::PhiNode *phi, Context &ctx)
 
static void jlm::hls::mark (const rvsdg::StructuralNode *node, Context &ctx)
 
static void jlm::hls::mark (const jlm::rvsdg::SimpleNode *node, Context &ctx)
 
static void jlm::hls::divert_users (jlm::rvsdg::Output *output, Context &ctx)
 
static void jlm::hls::divert_outputs (Node *node, Context &ctx)
 
static void jlm::hls::divert_arguments (rvsdg::Region *region, Context &ctx)
 
static void jlm::hls::divert (rvsdg::Region *, Context &)
 
static void jlm::hls::divert_gamma (rvsdg::GammaNode *gamma, Context &ctx)
 
static void jlm::hls::divert_theta (rvsdg::ThetaNode *theta, Context &ctx)
 
static void jlm::hls::divert_loop (LoopNode *node, Context &ctx)
 
static void jlm::hls::divert_lambda (rvsdg::LambdaNode *node, Context &ctx)
 
static void jlm::hls::divert_phi (rvsdg::PhiNode *phi, Context &ctx)
 
static void jlm::hls::divert (rvsdg::StructuralNode *node, Context &ctx)