diff options
| -rw-r--r-- | src/aig/gia/gia.h | 4 | ||||
| -rw-r--r-- | src/aig/gia/giaIf.c | 7 | ||||
| -rw-r--r-- | src/aig/gia/giaMan.c | 2 | ||||
| -rw-r--r-- | src/base/abci/abc.c | 30 | 
4 files changed, 24 insertions, 19 deletions
| diff --git a/src/aig/gia/gia.h b/src/aig/gia/gia.h index addf27f3..f8668224 100644 --- a/src/aig/gia/gia.h +++ b/src/aig/gia/gia.h @@ -195,7 +195,7 @@ struct Gps_Par_t_      int            fCut;      int            fNpn;      int            fLutProf; -    int            fDumpFile; +    char *         pDumpFile;  };  typedef struct Emb_Par_t_ Emb_Par_t; @@ -1089,7 +1089,7 @@ extern void                Gia_ManHashProfile( Gia_Man_t * p );  extern int                 Gia_ManHashLookup( Gia_Man_t * p, Gia_Obj_t * p0, Gia_Obj_t * p1 );  extern int                 Gia_ManHashAndMulti( Gia_Man_t * p, Vec_Int_t * vLits );  /*=== giaIf.c ===========================================================*/ -extern void                Gia_ManPrintMappingStats( Gia_Man_t * p, int fDumpFile ); +extern void                Gia_ManPrintMappingStats( Gia_Man_t * p, char * pDumpFile );  extern void                Gia_ManPrintPackingStats( Gia_Man_t * p );  extern void                Gia_ManPrintLutStats( Gia_Man_t * p );  extern int                 Gia_ManLutFaninCount( Gia_Man_t * p ); diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c index b267e7f3..d665b4cb 100644 --- a/src/aig/gia/giaIf.c +++ b/src/aig/gia/giaIf.c @@ -305,7 +305,7 @@ int Gia_ManComputeOverlap( Gia_Man_t * p )    SeeAlso     []  ***********************************************************************/ -void Gia_ManPrintMappingStats( Gia_Man_t * p, int fDumpFile ) +void Gia_ManPrintMappingStats( Gia_Man_t * p, char * pDumpFile )  {      int * pLevels;      int i, k, iFan, nLutSize = 0, nLuts = 0, nFanins = 0, LevelMax = 0; @@ -331,12 +331,11 @@ void Gia_ManPrintMappingStats( Gia_Man_t * p, int fDumpFile )      Abc_Print( 1, "mem =%5.2f MB", 4.0*(Gia_ManObjNum(p) + 2*nLuts + nFanins)/(1<<20) );      Abc_Print( 1, "\n" ); -    if ( fDumpFile ) +    if ( pDumpFile )      { -        char * pFileName = "stats_map.txt";          static char FileNameOld[1000] = {0};          static abctime clk = 0; -        FILE * pTable = fopen( pFileName, "a+" ); +        FILE * pTable = fopen( pDumpFile, "a+" );          if ( strcmp( FileNameOld, p->pName ) )          {              sprintf( FileNameOld, "%s", p->pName ); diff --git a/src/aig/gia/giaMan.c b/src/aig/gia/giaMan.c index 00ab594e..805ab4f9 100644 --- a/src/aig/gia/giaMan.c +++ b/src/aig/gia/giaMan.c @@ -369,7 +369,7 @@ void Gia_ManPrintStats( Gia_Man_t * p, Gps_Par_t * pPars )      if ( p->pSibls )          Gia_ManPrintChoiceStats( p );      if ( Gia_ManHasMapping(p) ) -        Gia_ManPrintMappingStats( p, pPars && pPars->fDumpFile ); +        Gia_ManPrintMappingStats( p, pPars ? pPars->pDumpFile : NULL );      if ( pPars && pPars->fNpn && Gia_ManHasMapping(p) && Gia_ManLutSizeMax(p) <= 4 )          Gia_ManPrintNpnClasses( p );      if ( p->vPacking ) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index b4910092..a0772184 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -25083,7 +25083,7 @@ int Abc_CommandAbc9Ps( Abc_Frame_t * pAbc, int argc, char ** argv )      int c;      memset( pPars, 0, sizeof(Gps_Par_t) );      Extra_UtilGetoptReset(); -    while ( ( c = Extra_UtilGetopt( argc, argv, "tpcnldh" ) ) != EOF ) +    while ( ( c = Extra_UtilGetopt( argc, argv, "Dtpcnlh" ) ) != EOF )      {          switch ( c )          { @@ -25102,8 +25102,14 @@ int Abc_CommandAbc9Ps( Abc_Frame_t * pAbc, int argc, char ** argv )          case 'l':              pPars->fLutProf ^= 1;              break; -        case 'd': -            pPars->fDumpFile ^= 1; +        case 'D': +            if ( globalUtilOptind >= argc ) +            { +                Abc_Print( -1, "Command line switch \"-D\" should be followed by a file name.\n" ); +                goto usage; +            } +            pPars->pDumpFile = argv[globalUtilOptind]; +            globalUtilOptind++;              break;          case 'h':              goto usage; @@ -25120,15 +25126,15 @@ int Abc_CommandAbc9Ps( Abc_Frame_t * pAbc, int argc, char ** argv )      return 0;  usage: -    Abc_Print( -2, "usage: &ps [-tpcnldh]\n" ); -    Abc_Print( -2, "\t        prints stats of the current AIG\n" ); -    Abc_Print( -2, "\t-t    : toggle printing BMC tents [default = %s]\n",                pPars->fTents? "yes": "no" ); -    Abc_Print( -2, "\t-p    : toggle printing switching activity [default = %s]\n",       pPars->fSwitch? "yes": "no" ); -    Abc_Print( -2, "\t-c    : toggle printing the size of frontier cut [default = %s]\n", pPars->fCut? "yes": "no" ); -    Abc_Print( -2, "\t-n    : toggle printing NPN classes of functions [default = %s]\n", pPars->fNpn? "yes": "no" ); -    Abc_Print( -2, "\t-l    : toggle printing LUT size profile [default = %s]\n",         pPars->fLutProf? "yes": "no" ); -    Abc_Print( -2, "\t-d    : toggle dumping statistics into a file [default = %s]\n",    pPars->fDumpFile? "yes": "no" ); -    Abc_Print( -2, "\t-h    : print the command usage\n"); +    Abc_Print( -2, "usage: &ps [-tpcnlh] [-D file]\n" ); +    Abc_Print( -2, "\t          prints stats of the current AIG\n" ); +    Abc_Print( -2, "\t-t      : toggle printing BMC tents [default = %s]\n",                pPars->fTents? "yes": "no" ); +    Abc_Print( -2, "\t-p      : toggle printing switching activity [default = %s]\n",       pPars->fSwitch? "yes": "no" ); +    Abc_Print( -2, "\t-c      : toggle printing the size of frontier cut [default = %s]\n", pPars->fCut? "yes": "no" ); +    Abc_Print( -2, "\t-n      : toggle printing NPN classes of functions [default = %s]\n", pPars->fNpn? "yes": "no" ); +    Abc_Print( -2, "\t-l      : toggle printing LUT size profile [default = %s]\n",         pPars->fLutProf? "yes": "no" ); +    Abc_Print( -2, "\t-D file : file name to dump statistics [default = none]\n" ); +    Abc_Print( -2, "\t-h      : print the command usage\n");      return 1;  } | 
