oagTimer::PeepHole Class Reference

#include <oagTimerPeepHole.h>

Collaboration diagram for oagTimer::PeepHole:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PeepHole (oaDesign *d, Timer *t, int lvl)
 ~PeepHole ()
bool isPowerImprove ()
void reverseAllSizing ()
bool bestConfigExist ()
void saveBestConfig ()
void reloadBestSizing ()
int set (oaModInst *i)
int set (oaModInst *i, instVector f)
void setFeasibleFanout (CellData *cell, float prevLeakage)
bool commitFeasibleCandidates (float prevRootLeakage)
oaModInst * getRoot ()
instVector getFanouts ()
float getLeakage ()
void update ()
void print ()

Public Attributes

double minNetLeakage

Private Member Functions

void initCellData ()
void clear ()
void printList (oaString s, vector< oaString > list)

Private Attributes

oaDesign * design
Timertiming
oaModInst * root
instVector fanouts
double leakage_sum
float subNetLeakage
float feasibleNetLeakage
swapVector feasibleSwaps
map< oaModInst *, oaString > existingLibMasterMap
map< oaModInst *, oaString > minLeakageConfig
bool empty
bool valid
int foLvl
vector< oaModInst * > currModInsts

Constructor & Destructor Documentation

oagTimer::PeepHole::PeepHole oaDesign *  d,
Timer t,
int  lvl
 

Variables

Here is the call graph for this function:

oagTimer::PeepHole::~PeepHole  ) 
 

Here is the call graph for this function:


Member Function Documentation

bool oagTimer::PeepHole::bestConfigExist  ) 
 

void oagTimer::PeepHole::clear  )  [private]
 

bool oagTimer::PeepHole::commitFeasibleCandidates float  prevRootLeakage  ) 
 

This function search for all the possible fanout swaps that satisfy net leakage power decrease and reverse those that do not float: the root cell previous leakage power bool: true - if a candidate peephole was found false - otherwise

Here is the call graph for this function:

instVector oagTimer::PeepHole::getFanouts  ) 
 

float oagTimer::PeepHole::getLeakage  ) 
 

oaModInst * oagTimer::PeepHole::getRoot  ) 
 

void oagTimer::PeepHole::initCellData  )  [private]
 

Here is the call graph for this function:

bool oagTimer::PeepHole::isPowerImprove  ) 
 

Here is the call graph for this function:

void oagTimer::PeepHole::print  ) 
 

Here is the call graph for this function:

void oagTimer::PeepHole::printList oaString  s,
vector< oaString >  list
[private]
 

void oagTimer::PeepHole::reloadBestSizing  ) 
 

Here is the call graph for this function:

void oagTimer::PeepHole::reverseAllSizing  ) 
 

Here is the call graph for this function:

void oagTimer::PeepHole::saveBestConfig  ) 
 

int oagTimer::PeepHole::set oaModInst *  i,
instVector  f
 

Here is the call graph for this function:

int oagTimer::PeepHole::set oaModInst *  i  ) 
 

Here is the call graph for this function:

void oagTimer::PeepHole::setFeasibleFanout CellData cell,
float  prevLeakage
 

This function add a timing feasible and downsized fanout instance to the feasibleSwaps vector CellData: the feasible fanout cell float: leakage power of the cell master before swap void

void oagTimer::PeepHole::update  ) 
 


Member Data Documentation

vector<oaModInst*> oagTimer::PeepHole::currModInsts [private]
 

oaDesign* oagTimer::PeepHole::design [private]
 

bool oagTimer::PeepHole::empty [private]
 

Flag to indicate current peephole status

map<oaModInst*,oaString> oagTimer::PeepHole::existingLibMasterMap [private]
 

Current lib master map

instVector oagTimer::PeepHole::fanouts [private]
 

A vector of fanout instances that are part of this peephole

float oagTimer::PeepHole::feasibleNetLeakage [private]
 

swapVector oagTimer::PeepHole::feasibleSwaps [private]
 

A vector of feasible swap

int oagTimer::PeepHole::foLvl [private]
 

double oagTimer::PeepHole::leakage_sum [private]
 

Total leakage for this peephole

map<oaModInst*,oaString> oagTimer::PeepHole::minLeakageConfig [private]
 

double oagTimer::PeepHole::minNetLeakage
 

oaModInst* oagTimer::PeepHole::root [private]
 

The root of this peephole

float oagTimer::PeepHole::subNetLeakage [private]
 

Timer* oagTimer::PeepHole::timing [private]
 

bool oagTimer::PeepHole::valid [private]
 


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 14:25:37 2011 by  doxygen 1.3.9.1