Jlm
Classes | Namespaces | Functions
node.hpp File Reference
#include <jlm/rvsdg/operation.hpp>
#include <jlm/util/common.hpp>
#include <jlm/util/HashSet.hpp>
#include <jlm/util/intrusive-list.hpp>
#include <jlm/util/iterator_range.hpp>
#include <jlm/util/IteratorWrapper.hpp>
#include <cstdint>
#include <utility>
#include <variant>
Include dependency graph for node.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jlm::rvsdg::Input
 
class  jlm::rvsdg::Input::Iterator
 
class  jlm::rvsdg::Input::ConstIterator
 
class  jlm::rvsdg::Output
 
class  jlm::rvsdg::Output::Iterator
 
class  jlm::rvsdg::Output::ConstIterator
 
class  jlm::rvsdg::NodeInput
 
class  jlm::rvsdg::NodeOutput
 
class  jlm::rvsdg::Node
 

Namespaces

 jlm
 
 jlm::rvsdg
 

Functions

template<class T >
static bool jlm::rvsdg::is (const jlm::rvsdg::Input &input) noexcept
 
Output & jlm::rvsdg::RouteToRegion (Output &output, Region &region)
 
template<class T >
static bool jlm::rvsdg::is (const jlm::rvsdg::Output *output) noexcept
 
template<class OperationType >
bool jlm::rvsdg::is (const Node *node) noexcept
 Checks if the given node is not null, and has an operation of the specified type. More...
 
template<typename TOperation >
const TOperation * jlm::rvsdg::tryGetOperation (const Node &node) noexcept
 
template<typename NodeType >
NodeType * jlm::rvsdg::TryGetOwnerNode (const rvsdg::Input &input) noexcept
 Checks if this is an input to a node of specified type. More...
 
template<typename NodeType >
NodeType * jlm::rvsdg::TryGetOwnerNode (const rvsdg::Output &output) noexcept
 Checks if this is an output to a node of specified type. More...
 
template<typename NodeType >
NodeType & jlm::rvsdg::AssertGetOwnerNode (const rvsdg::Input &input)
 Asserts that this is an input to a node of specified type. More...
 
template<typename NodeType >
NodeType & jlm::rvsdg::AssertGetOwnerNode (const rvsdg::Output &output)
 Asserts that this is an output of a node of specified type. More...
 
template<typename OperationType >
bool jlm::rvsdg::IsOwnerNodeOperation (const rvsdg::Input &input) noexcept
 Checks if the input belongs to a node of the specified operation type. More...
 
template<typename OperationType >
bool jlm::rvsdg::IsOwnerNodeOperation (const rvsdg::Output &output) noexcept
 Checks if the output belongs to a node of the specified operation type. More...
 
Region * jlm::rvsdg::TryGetOwnerRegion (const rvsdg::Input &input) noexcept
 
Region * jlm::rvsdg::TryGetOwnerRegion (const rvsdg::Output &output) noexcept
 
static std::vector< jlm::rvsdg::Output * > jlm::rvsdg::operands (const Node *node)
 
static std::vector< jlm::rvsdg::Output * > jlm::rvsdg::outputs (const Node *node)
 
static std::vector< Output * > jlm::rvsdg::Outputs (const Node &node, const size_t startIdx, const size_t size)
 
static void jlm::rvsdg::divert_users (Node *node, const std::vector< Output * > &outputs)