* ./kite:

- Cleanup: In GCell, remove the DyKeyQueue support as it's been moved
        to Katabatic level.
    - Change: In NegociateWidow, increase the event stop thresold to 4M events
        to be able to process the eFPGA matrix 16x16 (150K gates).
This commit is contained in:
Jean-Paul Chaput 2010-03-26 18:03:01 +00:00
parent 3637f1c0cf
commit a515d42757
3 changed files with 8 additions and 101 deletions

View File

@ -165,25 +165,6 @@ namespace Kite {
} }
// -------------------------------------------------------------------
// Class : "Kite::GCell::CompareByKey".
//
// lhs < rhs --> true
bool GCell::CompareByKey::operator() ( GCell* lhs, GCell* rhs )
{
//int difference = floatCompare ( lhs->base()->getDensity(), rhs->base()->getDensity() );
//if ( abs(difference) > 1000 ) return difference > 0;
float difference = roundfp ( lhs->base()->getDensity() - rhs->base()->getDensity() );
if ( difference != 0.0 ) return (difference > 0.0);
if ( lhs->getIndex() < rhs->getIndex() ) return true;
return false;
}
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// Class : "Kite::GCell::CompareByStiffness". // Class : "Kite::GCell::CompareByStiffness".
// //
@ -587,57 +568,5 @@ namespace Kite {
{ return _base->_getRecord(); } { return _base->_getRecord(); }
// -------------------------------------------------------------------
// Class : "Kite::DyKeyQueue".
DyKeyQueue::DyKeyQueue ()
: _map ()
, _requests()
{ }
DyKeyQueue::~DyKeyQueue ()
{
if ( (not _map.empty()) or (not _requests.empty()) ) {
cerr << Warning("~DyKeyQueue(): Still contains %d elements and %d requests."
,_map.size(),_requests.size()) << endl;
}
}
void DyKeyQueue::invalidate ( GCell* gcell )
{
std::set<GCell*,GCell::CompareByKey>::iterator igcell = _map.find(gcell);
if ( igcell != _map.end() ) {
_map.erase ( igcell );
}
push ( gcell );
}
void DyKeyQueue::push ( GCell* gcell )
{
_requests.insert ( gcell );
}
void DyKeyQueue::revalidate ()
{
std::set<GCell*>::iterator igcell = _requests.begin();
for ( ; igcell != _requests.end() ; ++igcell )
_map.insert ( *igcell );
}
GCell* DyKeyQueue::pop ()
{
if ( _map.empty() ) return NULL;
std::set<GCell*,GCell::CompareByKey>::iterator igcell = _map.begin();
GCell* gcell = *igcell;
_map.erase ( igcell );
}
} // End of Kite namespace. } // End of Kite namespace.

View File

@ -374,7 +374,7 @@ namespace Kite {
cmess2.flush(); cmess2.flush();
} }
if ( RoutingEvent::getProcesseds() >= /*10471*/ 1000000 ) setInterrupt ( true ); if ( RoutingEvent::getProcesseds() >= /*10471*/ 4000000 ) setInterrupt ( true );
count++; count++;
#if ENABLE_STIFFNESS #if ENABLE_STIFFNESS
@ -412,7 +412,8 @@ namespace Kite {
event->process ( _eventQueue, _eventHistory ); event->process ( _eventQueue, _eventHistory );
if (tty::enabled()) { if (tty::enabled()) {
cmess1 << " <SecondPass:Packing - event:" << tty::fgcolor(tty::Red) << setw(7) << setfill('0') cmess1 << " <SecondPass:Packing - event:"
<< tty::bold << tty::fgcolor(tty::Red) << setw(7) << setfill('0')
<< RoutingEvent::getProcesseds() << setfill(' ') << tty::reset << ">" << tty::cr; << RoutingEvent::getProcesseds() << setfill(' ') << tty::reset << ">" << tty::cr;
cmess1.flush (); cmess1.flush ();
} else { } else {

View File

@ -74,11 +74,6 @@ namespace Kite {
public: public:
bool operator() ( GCell* lhs, GCell* rhs ); bool operator() ( GCell* lhs, GCell* rhs );
}; };
// Sub-Class: "CompareByKey()".
class CompareByKey {
public:
bool operator() ( GCell* lhs, GCell* rhs );
};
// Sub-Class: "CompareByStiffness()". // Sub-Class: "CompareByStiffness()".
class CompareByStiffness { class CompareByStiffness {
public: public:
@ -155,15 +150,15 @@ namespace Kite {
protected: protected:
// Constructors & Destructors. // Constructors & Destructors.
GCell ( GCellGrid*, Katabatic::GCell* ); GCell ( GCellGrid*, Katabatic::GCell* );
virtual ~GCell (); virtual ~GCell ();
private: private:
GCell ( const GCell& ); GCell ( const GCell& );
GCell& operator= ( const GCell& ); GCell& operator= ( const GCell& );
}; };
// Inline Functions. // GCell Inline Functions.
inline Katabatic::GCell* GCell::base () { return _base; } inline Katabatic::GCell* GCell::base () { return _base; }
inline bool GCell::isInRoutingSet () const { return _isInRoutingSet; } inline bool GCell::isInRoutingSet () const { return _isInRoutingSet; }
inline bool GCell::isRouted () const { return _isRouted; } inline bool GCell::isRouted () const { return _isRouted; }
@ -214,24 +209,6 @@ namespace Kite {
typedef GenericFilter<GCell*> GCellFilter; typedef GenericFilter<GCell*> GCellFilter;
// -------------------------------------------------------------------
// Class : "DyKeyQueue".
class DyKeyQueue {
public:
DyKeyQueue ();
~DyKeyQueue ();
GCell* pop ();
void push ( GCell* );
void invalidate ( GCell* );
void revalidate ();
private:
std::set<GCell*,GCell::CompareByKey> _map;
std::set<GCell*> _requests;
};
} // End of Kite namespace. } // End of Kite namespace.