Jlm
Namespaces | Functions
gamma.cpp File Reference
#include <algorithm>
#include <jlm/rvsdg/control.hpp>
#include <jlm/rvsdg/gamma.hpp>
#include <jlm/rvsdg/substitution.hpp>
#include <jlm/rvsdg/UnitType.hpp>
Include dependency graph for gamma.cpp:

Go to the source code of this file.

Namespaces

 jlm
 
 jlm::rvsdg
 

Functions

static bool jlm::rvsdg::is_predicate_reducible (const GammaNode *gamma)
 
static void jlm::rvsdg::perform_predicate_reduction (GammaNode *gamma)
 
static bool jlm::rvsdg::perform_invariant_reduction (GammaNode *gamma)
 
static std::unordered_set< jlm::rvsdg::Output * > jlm::rvsdg::is_control_constant_reducible (GammaNode *gamma)
 
static void jlm::rvsdg::perform_control_constant_reduction (std::unordered_set< jlm::rvsdg::Output * > &outputs)
 
bool jlm::rvsdg::ReduceGammaWithStaticallyKnownPredicate (Node &node)
 
bool jlm::rvsdg::ReduceGammaControlConstant (Node &node)
 
bool jlm::rvsdg::ReduceGammaInvariantVariables (Node &node)
 
std::optional< rvsdg::Output * > jlm::rvsdg::GetGammaInvariantOrigin (const GammaNode &gamma, const GammaNode::ExitVar &exitvar)
 Determines whether a gamma exit var is path-invariant. More...