MimIR 0.1
MimIR is my Intermediate Representation
|
A Control-Flow Graph. More...
#include <mim/analyses/cfg.h>
Public Types | |
template<class Value > | |
using | Map = IndexMap<CFG<forward>, const CFNode*, Value> |
using | Set = IndexSet<CFG<forward>, const CFNode*> |
Public Member Functions | |
CFG (const CFG &)=delete | |
CFG & | operator= (CFG)=delete |
CFG (const CFA &) | |
const CFA & | cfa () const |
size_t | size () const |
const CFNodes & | preds (const CFNode *n) const |
const CFNodes & | succs (const CFNode *n) const |
const CFNodes & | preds (Def *mut) const |
const CFNodes & | succs (Def *mut) const |
size_t | num_preds (const CFNode *n) const |
size_t | num_succs (const CFNode *n) const |
size_t | num_preds (Def *mut) const |
size_t | num_succs (Def *mut) const |
const CFNode * | entry () const |
const CFNode * | exit () const |
auto | reverse_post_order () const |
auto | post_order () const |
const CFNode * | reverse_post_order (size_t i) const |
Maps from reverse post-order index to CFNode. | |
const CFNode * | post_order (size_t i) const |
Maps from post-order index to CFNode. | |
const CFNode * | operator[] (Def *mut) const |
Maps from mut to CFNode. | |
const DomTreeBase< forward > & | domtree () const |
const LoopTree< forward > & | looptree () const |
const DomFrontierBase< forward > & | domfrontier () const |
Static Public Member Functions | |
static size_t | index (const CFNode *n) |
A Control-Flow Graph.
A small wrapper for the information obtained by a CFA. The template parameter forward
determines the direction of the edges:
true
means a conventional CFG.Definition at line 155 of file cfg.cpp.
References mim::CFG< bool >::entry(), mim::CFG< bool >::index(), and mim::CFG< bool >::size().
Definition at line 126 of file cfg.h.
Referenced by mim::CFG< bool >::entry(), mim::CFG< bool >::exit(), mim::CFG< bool >::num_preds(), mim::CFG< bool >::num_succs(), mim::CFG< bool >::operator[](), mim::CFG< bool >::preds(), mim::CFG< bool >::size(), and mim::CFG< bool >::succs().
const DomFrontierBase< forward > & mim::CFG< forward >::domfrontier | ( | ) | const |
Definition at line 179 of file cfg.cpp.
References mim::lazy_init().
const DomTreeBase< forward > & mim::CFG< forward >::domtree | ( | ) | const |
Definition at line 177 of file cfg.cpp.
References mim::lazy_init().
Definition at line 136 of file cfg.h.
References mim::CFG< bool >::cfa().
Referenced by mim::CFG< bool >::CFG().
Definition at line 137 of file cfg.h.
References mim::CFG< bool >::cfa().
Definition at line 150 of file cfg.h.
Referenced by mim::CFG< bool >::CFG(), and mim::DomTreeBase< bool >::index().
Definition at line 178 of file cfg.cpp.
References mim::lazy_init().
Definition at line 132 of file cfg.h.
References mim::CFG< bool >::preds().
Definition at line 134 of file cfg.h.
References mim::CFG< bool >::cfa(), and mim::CFG< bool >::num_preds().
Referenced by mim::CFG< bool >::num_preds().
Definition at line 133 of file cfg.h.
References mim::CFG< bool >::succs().
Definition at line 135 of file cfg.h.
References mim::CFG< bool >::cfa(), and mim::CFG< bool >::num_succs().
Referenced by mim::CFG< bool >::num_succs().
|
inline |
Maps from post-order index to CFNode.
Definition at line 144 of file cfg.h.
References mim::CFG< bool >::size().
Definition at line 175 of file cfg.cpp.
Referenced by mim::CFG< bool >::num_preds().
Definition at line 130 of file cfg.h.
References mim::CFG< bool >::cfa(), and mim::CFG< bool >::preds().
Referenced by mim::CFG< bool >::preds().
|
inline |
Definition at line 139 of file cfg.h.
Referenced by mim::Scheduler::schedule().
|
inline |
Definition at line 127 of file cfg.h.
References mim::CFG< bool >::cfa(), and mim::CFA::size().
Referenced by mim::CFG< bool >::CFG(), mim::LoopTreeBuilder< forward >::LoopTreeBuilder(), and mim::CFG< bool >::post_order().
Definition at line 176 of file cfg.cpp.
Referenced by mim::CFG< bool >::num_succs().
Definition at line 131 of file cfg.h.
References mim::CFG< bool >::cfa(), and mim::CFG< bool >::succs().
Referenced by mim::CFG< bool >::succs().