|
MimIR 0.1
MimIR is my Intermediate Representation
|
#include <mim/nest.h>
Classes | |
| struct | Children |
| struct | SiblDeps |
Public Types | |
| using | SCC = absl::flat_hash_set<const Node*> |
| Strongly Connected Component. | |
Public Member Functions | |
Getters | |
| std::string | name () const |
| const Nest & | nest () const |
| const Node * | inest () const |
| Immediate nester/parent of this Node. | |
| bool | is_root () const |
| Def * | mut () const |
The mutable capsulated in this Node or nullptr, if it's a virtual root comprising several Nodes. | |
| uint32_t | level () const |
| uint32_t | loop_depth () const |
Children | |
| const Children & | children () const |
| Children & | children () |
Sibling Dependencies | |
These are the dependencies across children(): A child | |
| template<bool Forward = true> | |
| auto & | sibl_deps () |
| template<bool Forward = true> | |
| const auto & | sibl_deps () const |
SCCs | |
SCCs for all children dependencies.
| |
| const auto & | SCCs () |
| const auto & | topo () const |
| Topological sorting of all SCCs. | |
| bool | is_recursive () const |
| bool | is_mutually_recursive () const |
| bool | is_directly_recursive () const |
Friends | |
| class | Nest |
| using mim::Nest::Node::SCC = absl::flat_hash_set<const Node*> |
|
inline |
Immediate nester/parent of this Node.
Definition at line 19 of file nest.h.
Referenced by mim::Nest::lca().
|
inline |
Definition at line 133 of file nest.h.
References is_recursive().
|
inline |
Definition at line 132 of file nest.h.
References is_recursive().
|
inline |
Definition at line 131 of file nest.h.
Referenced by is_directly_recursive(), and is_mutually_recursive().
|
inline |
|
inline |
Definition at line 26 of file nest.h.
Referenced by mim::Nest::lca().
|
inline |
The mutable capsulated in this Node or nullptr, if it's a virtual root comprising several Nodes.
Definition at line 22 of file nest.h.
References is_root().
Referenced by mim::Nest::Node::Children::contains(), mim::plug::clos::free_defs(), name(), mim::Nest::Node::Children::operator[](), and mim::post_order().
|
inline |
Definition at line 17 of file nest.h.
References mut(), and mim::Def::unique_name().
|
inline |
|
inline |
Definition at line 108 of file nest.h.
References nest().
Referenced by mim::Nest::lca(), and sibl_deps().
|
inline |
Definition at line 117 of file nest.h.
References sibl_deps().
|
inline |
|
friend |