@@ -46147,9 +46147,9 @@ int Abc_CommandAbc9Rrr( Abc_Frame_t * pAbc, int argc, char ** argv )
4614746147{
4614846148 Gia_Man_t *pNew;
4614946149 int c;
46150- int iSeed = 0, nWords = 10, nTimeout = 0, nSchedulerVerbose = 1, nPartitionerVerbose = 0, nOptimizerVerbose = 0, nAnalyzerVerbose = 0, nSimulatorVerbose = 0, nSatSolverVerbose = 0, fUseBddCspf = 0, fUseBddMspf = 0, nConflictLimit = 0, nSortType = 12 , nOptimizerFlow = 0, nSchedulerFlow = 0, nDistance = 0, nRestarts = 0, nThreads = 1, nWindowSize = 0, fDeterministic = 1;
46150+ int iSeed = 0, nWords = 10, nTimeout = 0, nSchedulerVerbose = 1, nPartitionerVerbose = 0, nOptimizerVerbose = 0, nAnalyzerVerbose = 0, nSimulatorVerbose = 0, nSatSolverVerbose = 0, fUseBddCspf = 0, fUseBddMspf = 0, nConflictLimit = 0, nSortType = -1 , nOptimizerFlow = 0, nSchedulerFlow = 0, nPartitionType = 0, nDistance = 0, nJobs = 1, nThreads = 1, nPartitionSize = 0, nPartitionSizeMin = 0, fDeterministic = 1, nParallelPartitions = 1, fOptOnInsert = 0, fGreedy = 1;
4615146151 Extra_UtilGetoptReset();
46152- while ( ( c = Extra_UtilGetopt( argc, argv, "XYNJKDRWTCGVPOAQSabdh " ) ) != EOF )
46152+ while ( ( c = Extra_UtilGetopt( argc, argv, "XYZNJKLBDRWTCGVPOAQSabdegh " ) ) != EOF )
4615346153 {
4615446154 switch ( c )
4615546155 {
@@ -46161,16 +46161,28 @@ int Abc_CommandAbc9Rrr( Abc_Frame_t * pAbc, int argc, char ** argv )
4616146161 nSchedulerFlow = atoi(argv[globalUtilOptind]);
4616246162 globalUtilOptind++;
4616346163 break;
46164+ case 'Z':
46165+ nPartitionType = atoi(argv[globalUtilOptind]);
46166+ globalUtilOptind++;
46167+ break;
4616446168 case 'N':
46165- nRestarts = atoi(argv[globalUtilOptind]);
46169+ nJobs = atoi(argv[globalUtilOptind]);
4616646170 globalUtilOptind++;
4616746171 break;
4616846172 case 'J':
4616946173 nThreads = atoi(argv[globalUtilOptind]);
4617046174 globalUtilOptind++;
4617146175 break;
4617246176 case 'K':
46173- nWindowSize = atoi(argv[globalUtilOptind]);
46177+ nPartitionSize = atoi(argv[globalUtilOptind]);
46178+ globalUtilOptind++;
46179+ break;
46180+ case 'L':
46181+ nPartitionSizeMin = atoi(argv[globalUtilOptind]);
46182+ globalUtilOptind++;
46183+ break;
46184+ case 'B':
46185+ nParallelPartitions = atoi(argv[globalUtilOptind]);
4617446186 globalUtilOptind++;
4617546187 break;
4617646188 case 'D':
@@ -46230,6 +46242,12 @@ int Abc_CommandAbc9Rrr( Abc_Frame_t * pAbc, int argc, char ** argv )
4623046242 case 'd':
4623146243 fDeterministic ^= 1;
4623246244 break;
46245+ case 'e':
46246+ fOptOnInsert ^= 1;
46247+ break;
46248+ case 'g':
46249+ fGreedy ^= 1;
46250+ break;
4623346251 case 'h':
4623446252 goto usage;
4623546253 default:
@@ -46248,32 +46266,38 @@ int Abc_CommandAbc9Rrr( Abc_Frame_t * pAbc, int argc, char ** argv )
4624846266 return 1;
4624946267 }
4625046268
46251- pNew = Gia_ManRrr( pAbc->pGia, iSeed, nWords, nTimeout, nSchedulerVerbose, nPartitionerVerbose, nOptimizerVerbose, nAnalyzerVerbose, nSimulatorVerbose, nSatSolverVerbose, fUseBddCspf, fUseBddMspf, nConflictLimit, nSortType, nOptimizerFlow, nSchedulerFlow, nDistance, nRestarts , nThreads, nWindowSize, fDeterministic );
46269+ pNew = Gia_ManRrr( pAbc->pGia, iSeed, nWords, nTimeout, nSchedulerVerbose, nPartitionerVerbose, nOptimizerVerbose, nAnalyzerVerbose, nSimulatorVerbose, nSatSolverVerbose, fUseBddCspf, fUseBddMspf, nConflictLimit, nSortType, nOptimizerFlow, nSchedulerFlow, nPartitionType, nDistance, nJobs , nThreads, nPartitionSize, nPartitionSizeMin, fDeterministic, nParallelPartitions, fOptOnInsert, fGreedy );
4625246270
4625346271 Abc_FrameUpdateGia( pAbc, pNew );
4625446272
4625546273 return 0;
4625646274
4625746275usage:
46258- Abc_Print( -2, "usage: rrr [-XYNJKDRWTCGVPOAQS num] [-abdh ]\n" );
46276+ Abc_Print( -2, "usage: rrr [-XYZNJKLBDRWTCGVPOAQS num] [-abdegh ]\n" );
4625946277 Abc_Print( -2, "\t perform optimization\n" );
4626046278 Abc_Print( -2, "\t-X num : method [default = %d]\n", nOptimizerFlow );
4626146279 Abc_Print( -2, "\t 0: single-add resub\n" );
4626246280 Abc_Print( -2, "\t 1: multi-add resub\n" );
4626346281 Abc_Print( -2, "\t 2: repeat 0 and 1\n" );
46282+ Abc_Print( -2, "\t 3: random one meaningful resub\n" );
4626446283 Abc_Print( -2, "\t-Y num : flow [default = %d]\n", nSchedulerFlow );
4626546284 Abc_Print( -2, "\t 0: apply method once\n" );
4626646285 Abc_Print( -2, "\t 1: iterate like transtoch\n" );
4626746286 Abc_Print( -2, "\t 2: iterate like deepsyn\n" );
46268- Abc_Print( -2, "\t-N num : number of restarts or windows [default = %d]\n", nRestarts );
46287+ Abc_Print( -2, "\t-Z num : partition [default = %d]\n", nPartitionType );
46288+ Abc_Print( -2, "\t 0: distance base\n" );
46289+ Abc_Print( -2, "\t 1: level base\n" );
46290+ Abc_Print( -2, "\t-N num : number of jobs to create by restarting or partitioning [default = %d]\n", nJobs );
4626946291 Abc_Print( -2, "\t-J num : number of threads [default = %d]\n", nThreads );
46270- Abc_Print( -2, "\t-K num : window size (0 = no partitioning) [default = %d]\n", nWindowSize );
46292+ Abc_Print( -2, "\t-K num : partition size (0 = no partitioning) [default = %d]\n", nPartitionSize );
46293+ Abc_Print( -2, "\t-K num : minimum partition size [default = %d]\n", nPartitionSizeMin );
46294+ Abc_Print( -2, "\t-B num : max number of partitions in parallel [default = %d]\n", nParallelPartitions );
4627146295 Abc_Print( -2, "\t-D num : distance between nodes (0 = no limit) [default = %d]\n", nDistance );
4627246296 Abc_Print( -2, "\t-R num : random number generator seed [default = %d]\n", iSeed );
4627346297 Abc_Print( -2, "\t-W num : number of simulation words [default = %d]\n", nWords );
4627446298 Abc_Print( -2, "\t-T num : timeout in seconds (0 = no timeout) [default = %d]\n", nTimeout );
4627546299 Abc_Print( -2, "\t-C num : conflict limit (0 = no limit) [default = %d]\n", nConflictLimit );
46276- Abc_Print( -2, "\t-G num : fanin cost function [default = %d]\n", nSortType );
46300+ Abc_Print( -2, "\t-G num : fanin cost function (-1 = random) [default = %d]\n", nSortType );
4627746301 Abc_Print( -2, "\t-V num : scheduler verbosity level [default = %d]\n", nSchedulerVerbose );
4627846302 Abc_Print( -2, "\t-P num : partitioner verbosity level [default = %d]\n", nPartitionerVerbose );
4627946303 Abc_Print( -2, "\t-O num : optimizer verbosity level [default = %d]\n", nOptimizerVerbose );
@@ -46283,6 +46307,8 @@ int Abc_CommandAbc9Rrr( Abc_Frame_t * pAbc, int argc, char ** argv )
4628346307 Abc_Print( -2, "\t-a : use BDD-based analyzer (CSPF) [default = %s]\n", fUseBddCspf? "yes": "no" );
4628446308 Abc_Print( -2, "\t-b : use BDD-based analyzer (MSPF) [default = %s]\n", fUseBddMspf? "yes": "no" );
4628546309 Abc_Print( -2, "\t-d : ensure deterministic execution [default = %s]\n", fDeterministic? "yes": "no" );
46310+ Abc_Print( -2, "\t-e : apply c2rs; dc2 after importing changes of partitions [default = %s]\n", fOptOnInsert? "yes": "no" );
46311+ Abc_Print( -2, "\t-g : discard changes that increased the cost [default = %s]\n", fGreedy? "yes": "no" );
4628646312 Abc_Print( -2, "\t-h : print the command usage\n");
4628746313 return 1;
4628846314}
0 commit comments