colorize.cpp File Reference

Uses colors to analyze dependencies among sub expressions. More...

#include "colorize.h"
#include "signals.hh"
Include dependency graph for colorize.cpp:

Go to the source code of this file.

Functions

void splitDependance (const set< Tree > &exps, set< Tree > &post, set< Tree > &pre)
 Analyze a set of expressions to discover its dependencies that is subexpressions common to at least two of these expressions.
void setColorProperty (Tree sig, set< int > *colorset)
 set the color-set property of sig
set< int > * getColorProperty (Tree sig)
 retrieve the color-set property of sig

Detailed Description

Uses colors to analyze dependencies among sub expressions.

Definition in file colorize.cpp.


Function Documentation

set<int>* getColorProperty ( Tree  sig  ) 

retrieve the color-set property of sig

Parameters:
sig the signal we want to know the color-set property

Definition at line 135 of file colorize.cpp.

00136 {
00137     Tree tt;
00138     if (!getProperty(sig, COLORPROPERTY, tt)) {
00139         return 0;
00140     } else {
00141         return (set<int>*)tree2ptr(tt);
00142     }
00143 }

void setColorProperty ( Tree  sig,
set< int > *  colorset 
)

set the color-set property of sig

Parameters:
sig the signal we want to type
t the type of the signal

Definition at line 125 of file colorize.cpp.

00126 {
00127     setProperty(sig, COLORPROPERTY, tree((void*)colorset));
00128 }

void splitDependance ( const set< Tree > &  exps,
set< Tree > &  post,
set< Tree > &  pre 
)

Analyze a set of expressions to discover its dependencies that is subexpressions common to at least two of these expressions.

Parameters:
exps set of expressions to analyze
post resulting set of post expressions
pre resulting set of pre expressions

Definition at line 28 of file colorize.cpp.

00029 {
00030     set<Tree>::const_iterator e;
00031     for (e= exps.begin(); e != exps.end(); e++) {
00032         colorize(*e, allocateColor(*e));
00033     }
00034     
00035     pre.clear();
00036     for (e = exps.begin(); e != exps.end(); e++) {
00037         listMultiColoredExp(*e, pre);
00038     }
00039     
00040     post.clear();
00041     set_difference(exps.begin(), exps.end(), pre.begin(), pre.end(), inserter(post, post.begin()));
00042     
00043     for (e = exps.begin(); e != exps.end(); e++) {
00044         uncolorize(*e);
00045     }
00046 }

Generated by  doxygen 1.6.2-20100208