MimIR 0.1
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::LoopTree< forward > Class Template Reference

Calculates a loop nesting forest rooted at LoopTree::root_. More...

#include <mim/analyses/looptree.h>

Classes

class  Base
 Represents a node of a loop nesting forest. More...
 
class  Head
 A Head owns further nodes as children. More...
 
class  Leaf
 A Leaf only holds a single CFNode and does not have any children. More...
 

Public Member Functions

 LoopTree (const LoopTree &)=delete
 
LoopTreeoperator= (LoopTree)=delete
 
 LoopTree (const CFG< forward > &cfg)
 
const CFG< forward > & cfg () const
 
const Headroot () const
 
const Leafoperator[] (const CFNode *n) const
 

Friends

class LoopTreeBuilder< forward >
 
template<bool f>
std::ostream & operator<< (std::ostream &, const typename LoopTree< f >::Base *)
 

Detailed Description

template<bool forward>
class mim::LoopTree< forward >

Calculates a loop nesting forest rooted at LoopTree::root_.

The implementation uses Steensgard's algorithm. Check out G. Ramalingam, "On Loops, Dominators, and Dominance Frontiers", 1999, for more information.

Definition at line 16 of file looptree.h.

Constructor & Destructor Documentation

◆ LoopTree() [1/2]

template<bool forward>
mim::LoopTree< forward >::LoopTree ( const LoopTree< forward > & )
delete

◆ LoopTree() [2/2]

template<bool forward>
mim::LoopTree< forward >::LoopTree ( const CFG< forward > & cfg)
explicit

Member Function Documentation

◆ cfg()

template<bool forward>
const CFG< forward > & mim::LoopTree< forward >::cfg ( ) const
inline

Definition at line 84 of file looptree.h.

Referenced by mim::LoopTreeBuilder< forward >::LoopTreeBuilder().

◆ operator=()

template<bool forward>
LoopTree & mim::LoopTree< forward >::operator= ( LoopTree< forward > )
delete

◆ operator[]()

template<bool forward>
const Leaf * mim::LoopTree< forward >::operator[] ( const CFNode * n) const
inline

Definition at line 86 of file looptree.h.

References mim::find().

◆ root()

template<bool forward>
const Head * mim::LoopTree< forward >::root ( ) const
inline

Definition at line 85 of file looptree.h.

Friends And Related Symbol Documentation

◆ LoopTreeBuilder< forward >

template<bool forward>
friend class LoopTreeBuilder< forward >
friend

Definition at line 99 of file looptree.h.

Referenced by mim::LoopTree< forward >::LoopTree().

◆ operator<<

template<bool forward>
template<bool f>
std::ostream & operator<< ( std::ostream & ,
const typename LoopTree< f >::Base *  )
friend

The documentation for this class was generated from the following files: