* All Tools:

- New: Added FreeBSD/Ubuntu patches from Otacilio De Araujo
       (<otaciliodearaujo@gmail.com>).

  * ./kite:
    - New: Makes use of cbug to display the (scary) debug messages.
    - Change: Re-enable deletion of Knik in Kite destructor.
This commit is contained in:
Jean-Paul Chaput 2012-12-03 08:29:28 +00:00
parent 6a7e664087
commit 619a1b9f72
7 changed files with 40 additions and 65 deletions

View File

@ -26,6 +26,7 @@
find_package(CORIOLIS REQUIRED) find_package(CORIOLIS REQUIRED)
find_package(KNIK REQUIRED) find_package(KNIK REQUIRED)
find_package(KATABATIC REQUIRED) find_package(KATABATIC REQUIRED)
find_package(Libexecinfo REQUIRED)
if(BUILD_DOC) if(BUILD_DOC)
find_package(Doxygen) find_package(Doxygen)
endif(BUILD_DOC) endif(BUILD_DOC)

View File

@ -87,6 +87,7 @@
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${LIBXML2_LIBRARIES} ${LIBXML2_LIBRARIES}
${PYTHON_LIBRARIES} -lutil ${PYTHON_LIBRARIES} -lutil
${LIBEXECINFO_LIBRARIES}
) )
add_library ( pyKite MODULE ${pyCpps} ) add_library ( pyKite MODULE ${pyCpps} )

View File

@ -2,14 +2,9 @@
// -*- C++ -*- // -*- C++ -*-
// //
// This file is part of the Coriolis Software. // This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved // Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
// //
// =================================================================== // +-----------------------------------------------------------------+
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S | // | C O R I O L I S |
// | K i t e - D e t a i l e d R o u t e r | // | K i t e - D e t a i l e d R o u t e r |
// | | // | |
@ -17,10 +12,7 @@
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== | // | =============================================================== |
// | C++ Module : "./KiteEngine.cpp" | // | C++ Module : "./KiteEngine.cpp" |
// | *************************************************************** | // +-----------------------------------------------------------------+
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include <sstream> #include <sstream>
@ -164,7 +156,7 @@ namespace Kite {
cmess2 << " - RoutingEvents := " << RoutingEvent::getAllocateds() << endl; cmess2 << " - RoutingEvents := " << RoutingEvent::getAllocateds() << endl;
//_knik->destroy (); _knik->destroy ();
ltraceout(90); ltraceout(90);
} }
@ -355,7 +347,7 @@ namespace Kite {
size_t tracksSize = rp->getTracksSize(); size_t tracksSize = rp->getTracksSize();
for ( size_t itrack=0 ; itrack<tracksSize ; ++itrack ) { for ( size_t itrack=0 ; itrack<tracksSize ; ++itrack ) {
Track* track = rp->getTrackByIndex ( itrack ); Track* track = rp->getTrackByIndex ( itrack );
Knik::Edge* edge = NULL; //Knik::Edge* edge = NULL;
ltrace(300) << "Capacity from: " << track << endl; ltrace(300) << "Capacity from: " << track << endl;
@ -539,6 +531,10 @@ namespace Kite {
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_23" ); // DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_23" );
// DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_28" ); // DebugSession::addToTrace ( getCell(), "mips_r3000_core.mips_r3000_1m_dp.addsub32_carith_se.gi_3_28" );
//DebugSession::addToTrace ( getCell(), "cout_to_pads" ); //DebugSession::addToTrace ( getCell(), "cout_to_pads" );
//DebugSession::addToTrace ( getCell(), "mux_5.sel0" );
//DebugSession::addToTrace ( getCell(), "wm_rf.nandr0" );
//DebugSession::addToTrace ( getCell(), "adder_sub.gi_2_18" );
//DebugSession::addToTrace ( getCell(), "adder_sub.pi_3_20" );
createDetailedGrid (); createDetailedGrid ();
buildPowerRails (); buildPowerRails ();

View File

@ -2,14 +2,9 @@
// -*- C++ -*- // -*- C++ -*-
// //
// This file is part of the Coriolis Software. // This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2011, All Rights Reserved // Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
//
// ===================================================================
//
// $Id$
// //
// +-----------------------------------------------------------------+ // +-----------------------------------------------------------------+
// | |
// | C O R I O L I S | // | C O R I O L I S |
// | K i t e - D e t a i l e d R o u t e r | // | K i t e - D e t a i l e d R o u t e r |
// | | // | |
@ -17,9 +12,6 @@
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== | // | =============================================================== |
// | C++ Module : "./NegociateWindow.cpp" | // | C++ Module : "./NegociateWindow.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// +-----------------------------------------------------------------+ // +-----------------------------------------------------------------+

View File

@ -2,14 +2,9 @@
// -*- C++ -*- // -*- C++ -*-
// //
// This file is part of the Coriolis Software. // This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2011, All Rights Reserved // Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
//
// ===================================================================
//
// $Id$
// //
// +-----------------------------------------------------------------+ // +-----------------------------------------------------------------+
// | |
// | C O R I O L I S | // | C O R I O L I S |
// | K i t e - D e t a i l e d R o u t e r | // | K i t e - D e t a i l e d R o u t e r |
// | | // | |
@ -17,9 +12,6 @@
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== | // | =============================================================== |
// | C++ Module : "./RoutingEvent.cpp" | // | C++ Module : "./RoutingEvent.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// +-----------------------------------------------------------------+ // +-----------------------------------------------------------------+
@ -1619,7 +1611,7 @@ namespace {
Track* track = candidates[icandidate].getTrack(); Track* track = candidates[icandidate].getTrack();
TrackElement* other = track->getSegment(overlap.getCenter()); TrackElement* other = track->getSegment(overlap.getCenter());
if ( not other ) { if ( not other ) {
cerr << Error("conflictSolve1_v1b(): No segment under overlap center.") << endl; cbug << Error("conflictSolve1_v1b(): No segment under overlap center.") << endl;
continue; continue;
} }
@ -2004,7 +1996,7 @@ namespace {
} else { } else {
clearActions (); clearActions ();
if ( data->getState() == DataNegociate::Unimplemented ) { if ( data->getState() == DataNegociate::Unimplemented ) {
cerr << "[UNSOLVED] " << segment << " unable to slacken topology." << endl; cinfo << "[UNSOLVED] " << segment << " unable to slacken topology." << endl;
} }
} }
@ -2396,7 +2388,8 @@ namespace {
<< " vs. " << DbU::getValueString(interval.getVMax()) << endl; << " vs. " << DbU::getValueString(interval.getVMax()) << endl;
// Ugly: Direct uses of routing pitch. // Ugly: Direct uses of routing pitch.
if ( interval.getVMax()+DbU::lambda(5.0) >= uside.getVMin() ) { if ( interval.getVMax()+DbU::lambda(5.0) >= uside.getVMin() ) {
ltrace(200) << "Using next GCell." << endl; interval.inflate( 0, DbU::fromLambda(5.0) );
ltrace(200) << "Using next GCell " << interval << endl;
imaxconflict++; imaxconflict++;
} }
} }
@ -2443,16 +2436,20 @@ namespace {
if ( minExpanded ) { if ( minExpanded ) {
//doglegAxis = dogLegGCell->getUSide(_segment->getDirection(),false).getVMax() - DbU::lambda(1.0); //doglegAxis = dogLegGCell->getUSide(_segment->getDirection(),false).getVMax() - DbU::lambda(1.0);
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getCenter(); doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getCenter();
ltrace(200) << "MARK 1 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
} else { } else {
// Ugly: hardcoded pitch. // Ugly: hardcoded pitch.
doglegAxis = interval.getVMin() - DbU::lambda(5.0); doglegAxis = interval.getVMin() - DbU::lambda(5.0);
ltrace(200) << "MARK 2 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
} }
} else { } else {
if ( maxExpanded ) { if ( maxExpanded ) {
doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getVMin(); doglegAxis = dogLegGCell->getUSide(_segment->getDirection()/*,false*/).getVMin();
ltrace(200) << "MARK 3 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
} else { } else {
// Ugly: hardcoded pitch (5.0 - 1.0). // Ugly: hardcoded pitch (5.0 - 1.0).
doglegAxis = interval.getVMax() + DbU::lambda(4.0); doglegAxis = interval.getVMax() + DbU::lambda(4.0);
ltrace(200) << "MARK 4 doglegAxis: " << DbU::getValueString(doglegAxis) << endl;
} }
} }
if ( doglegReuse1 ) _S.addAction ( dogleg, SegmentAction::OtherRipup ); if ( doglegReuse1 ) _S.addAction ( dogleg, SegmentAction::OtherRipup );
@ -3781,7 +3778,7 @@ namespace Kite {
RoutingEvent* parentEvent = parent->getDataNegociate()->getRoutingEvent(); RoutingEvent* parentEvent = parent->getDataNegociate()->getRoutingEvent();
if ( parentEvent == this ) { if ( parentEvent == this ) {
cerr << Error("RoutingEvent::getAxisHint(): Parentage loop between\n" cbug << Error("RoutingEvent::getAxisHint(): Parentage loop between\n"
" this :%p:%s\n parent:%p:%s" " this :%p:%s\n parent:%p:%s"
,_segment->base(),getString(_segment->base()).c_str() ,_segment->base(),getString(_segment->base()).c_str()
,parent ->base(),getString(parent ->base()).c_str() ,parent ->base(),getString(parent ->base()).c_str()
@ -3861,7 +3858,7 @@ namespace Kite {
if ( loop.isLooping() ) { if ( loop.isLooping() ) {
if ( ltracelevel() > 200 ) { if ( ltracelevel() > 200 ) {
cerr << Error("Loop detected: %s.\n Enabling trace (level:200)" cbug << Error("Loop detected: %s.\n Enabling trace (level:200)"
,_getString().c_str()) << endl; ,_getString().c_str()) << endl;
//ltracelevel ( 200 ); //ltracelevel ( 200 );
//Cfg::getParamInt("misc.traceLevel")->setInt ( 200, Cfg::Parameter::CommandLine ); //Cfg::getParamInt("misc.traceLevel")->setInt ( 200, Cfg::Parameter::CommandLine );
@ -3875,7 +3872,7 @@ namespace Kite {
#if LOOP_DEBUG #if LOOP_DEBUG
if ( loop.getMaxCount() > 500 ) { if ( loop.getMaxCount() > 500 ) {
cerr << Error("Loop detected, removing event %s.",_getString().c_str()) << endl; cbug << Error("Loop detected, removing event %s.",_getString().c_str()) << endl;
//Cfg::getParamInt("misc.traceLevel")->setInt ( 1000, Cfg::Parameter::CommandLine ); //Cfg::getParamInt("misc.traceLevel")->setInt ( 1000, Cfg::Parameter::CommandLine );
//ltracelevel ( 1000 ); //ltracelevel ( 1000 );
@ -3905,7 +3902,7 @@ namespace Kite {
for ( size_t i=0 ; i<elements.size() ; ++i ) { for ( size_t i=0 ; i<elements.size() ; ++i ) {
message << "\n" << setw(10) << elements[i]._count << "| id:" << elements[i]._id; message << "\n" << setw(10) << elements[i]._count << "| id:" << elements[i]._id;
} }
cerr << message.str() << endl; cbug << message.str() << endl;
#endif #endif
} }
@ -3977,7 +3974,7 @@ namespace Kite {
State S ( this, queue, history ); State S ( this, queue, history );
if ( S.getState() == State::MissingData ) { if ( S.getState() == State::MissingData ) {
cerr << Error("RoutingEvent::process() - Missing datas.") << endl; cbug << Error("RoutingEvent::process() - Missing datas.") << endl;
return; return;
} }
@ -4167,10 +4164,14 @@ namespace Kite {
ltrace(200) << "Stage:" << RoutingEvent::getStage() << endl; ltrace(200) << "Stage:" << RoutingEvent::getStage() << endl;
if ( RoutingEvent::getStage() == RoutingEvent::Repair ) { if ( RoutingEvent::getStage() == RoutingEvent::Repair ) {
ltrace(200) << "Expanding:" << _constraints << endl; if (_segment->isTerminal()) {
// Ugly: direct uses of Cell Gauge. ltrace(200) << "Not expanding on Terminals:" << _constraints << endl;
_constraints.inflate ( DbU::lambda(50.0) ); } else {
ltrace(200) << "Expanding (after):" << _constraints << endl; ltrace(200) << "Expanding:" << _constraints << endl;
// Ugly: direct uses of Cell Gauge.
_constraints.inflate ( DbU::lambda(50.0) );
ltrace(200) << "Expanding (after):" << _constraints << endl;
}
} }
// else if ( _segment->isDogleg() // else if ( _segment->isDogleg()
// and (_segment->getDataNegociate()->getState() >= DataNegociate::MaximumSlack) ) { // and (_segment->getDataNegociate()->getState() >= DataNegociate::MaximumSlack) ) {

View File

@ -2,14 +2,9 @@
// -*- C++ -*- // -*- C++ -*-
// //
// This file is part of the Coriolis Software. // This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved // Copyright (c) UPMC/LIP6 2008-2012, All Rights Reserved
// //
// =================================================================== // +-----------------------------------------------------------------+
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S | // | C O R I O L I S |
// | K i t e - D e t a i l e d R o u t e r | // | K i t e - D e t a i l e d R o u t e r |
// | | // | |
@ -17,10 +12,7 @@
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== | // | =============================================================== |
// | C++ Module : "./TrackSegment.cpp" | // | C++ Module : "./TrackSegment.cpp" |
// | *************************************************************** | // +-----------------------------------------------------------------+
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x

View File

@ -2,14 +2,9 @@
// -*- C++ -*- // -*- C++ -*-
// //
// This file is part of the Coriolis Software. // This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2010, All Rights Reserved // Copyright (c) UPMC/LIP6 2008-2011, All Rights Reserved
// //
// =================================================================== // +-----------------------------------------------------------------+
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S | // | C O R I O L I S |
// | K i t e - D e t a i l e d R o u t e r | // | K i t e - D e t a i l e d R o u t e r |
// | | // | |
@ -17,10 +12,7 @@
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== | // | =============================================================== |
// | C++ Header : "./NegociateWindow.h" | // | C++ Header : "./NegociateWindow.h" |
// | *************************************************************** | // +-----------------------------------------------------------------+
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#ifndef __KITE_NEGOCIATE_WINDOW__ #ifndef __KITE_NEGOCIATE_WINDOW__