C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

loopTreeNode Class Reference

#include <loops.h>

List of all members.

Public Types

enum  LoopKind { SingleEntry, MultipleEntry, Top }
 Types of loops. More...


Public Member Functions

 loopTreeNode (LoopKind kind, basicblockNode *header)
 Create a new loop.

void addBlock (basicblockNode *block)
 Add a block to the loop.

void addNestedLoop (loopTreeNode *nest)
 Add a nested loop to the loop.

LoopKind kind () const
 Accessors.

int depth () const
void depth (int d)
basicblockNodeheader () const
basicblockNodepreheader () const
loopTreeNode * parentLoop () const
void parentLoop (loopTreeNode *parent)
loop_setnestedLoops ()
basicblock_setblocks ()
void report ()
 Report.

void output (output_context &, Node *parent)
void output_stmt (output_context &, Node *parent)

Private Attributes

LoopKind _kind
 Kind of loop.

int _depth
 Loop depth (zero is the top).

basicblockNode_header
 The loop header.

basicblockNode_preheader
 The loop preheader.

loopTreeNode * _parentLoop
 The containing loop.

loop_set _nestedLoops
 The set of nested loops.

basicblock_set _blocks
 The set of basic blocks.


Member Enumeration Documentation

enum loopTreeNode::LoopKind
 

Types of loops.

Enumeration values:
SingleEntry 
MultipleEntry 
Top 

Definition at line 69 of file loops.h.


Constructor & Destructor Documentation

loopTreeNode::loopTreeNode LoopKind    kind,
basicblockNode   header
 

Create a new loop.

Definition at line 47 of file loops.cc.

References _blocks.


Member Function Documentation

void loopTreeNode::addBlock basicblockNode   block [inline]
 

Add a block to the loop.

Definition at line 109 of file loops.h.

void loopTreeNode::addNestedLoop loopTreeNode *    nest [inline]
 

Add a nested loop to the loop.

Definition at line 113 of file loops.h.

basicblock_set& loopTreeNode::blocks   [inline]
 

Definition at line 131 of file loops.h.

References basicblock_set.

Referenced by report().

void loopTreeNode::depth int    d [inline]
 

Definition at line 120 of file loops.h.

int loopTreeNode::depth   const [inline]
 

Definition at line 119 of file loops.h.

Referenced by report(), and loopTree::setDepths().

basicblockNode* loopTreeNode::header   const [inline]
 

Definition at line 122 of file loops.h.

Referenced by report().

LoopKind loopTreeNode::kind   const [inline]
 

Accessors.

Definition at line 117 of file loops.h.

Referenced by report().

loop_set& loopTreeNode::nestedLoops   [inline]
 

Definition at line 129 of file loops.h.

References loop_set.

Referenced by loopTree::report(), and loopTree::setDepths().

void loopTreeNode::output output_context  ,
Node   parent
 

Definition at line 58 of file loops.cc.

References output_stmt().

void loopTreeNode::output_stmt output_context  ,
Node   parent
 

Definition at line 63 of file loops.cc.

References _header, and stmtNode::output().

Referenced by output().

void loopTreeNode::parentLoop loopTreeNode *    parent [inline]
 

Definition at line 127 of file loops.h.

loopTreeNode* loopTreeNode::parentLoop   const [inline]
 

Definition at line 126 of file loops.h.

Referenced by loopTree::findBody(), and loopTree::loopAncestor().

basicblockNode* loopTreeNode::preheader   const [inline]
 

Definition at line 124 of file loops.h.

void loopTreeNode::report  
 

Report.

Definition at line 72 of file loops.cc.

References basicblock_set_p, blocks(), depth(), basicblockNode::dfn(), header(), kind(), MultipleEntry, SingleEntry, and Top.

Referenced by loopTree::report().


Member Data Documentation

basicblock_set loopTreeNode::_blocks [private]
 

The set of basic blocks.

Definition at line 99 of file loops.h.

Referenced by loopTreeNode().

int loopTreeNode::_depth [private]
 

Loop depth (zero is the top).

Definition at line 79 of file loops.h.

basicblockNode* loopTreeNode::_header [private]
 

The loop header.

Definition at line 83 of file loops.h.

Referenced by output_stmt().

LoopKind loopTreeNode::_kind [private]
 

Kind of loop.

Definition at line 75 of file loops.h.

loop_set loopTreeNode::_nestedLoops [private]
 

The set of nested loops.

Definition at line 95 of file loops.h.

loopTreeNode* loopTreeNode::_parentLoop [private]
 

The containing loop.

Definition at line 91 of file loops.h.

basicblockNode* loopTreeNode::_preheader [private]
 

The loop preheader.

Definition at line 87 of file loops.h.


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

Generated on August 27, 2003
Back to the C-Breeze home page