diff options
Diffstat (limited to 'src/opt/cut')
-rw-r--r-- | src/opt/cut/cutMan.c | 11 | ||||
-rw-r--r-- | src/opt/cut/cutNode.c | 8 | ||||
-rw-r--r-- | src/opt/cut/cutOracle.c | 6 | ||||
-rw-r--r-- | src/opt/cut/cutPre22.c | 74 | ||||
-rw-r--r-- | src/opt/cut/cutTruth.c | 7 |
5 files changed, 46 insertions, 60 deletions
diff --git a/src/opt/cut/cutMan.c b/src/opt/cut/cutMan.c index 8593ef93..882567fd 100644 --- a/src/opt/cut/cutMan.c +++ b/src/opt/cut/cutMan.c @@ -44,7 +44,6 @@ extern void Npn_StartTruth8( uint8 uTruths[][32] ); Cut_Man_t * Cut_ManStart( Cut_Params_t * pParams ) { Cut_Man_t * p; - int clk = clock(); // extern int nTruthDsd; // nTruthDsd = 0; assert( pParams->nVarsMax >= 3 && pParams->nVarsMax <= CUT_SIZE_MAX ); @@ -121,16 +120,6 @@ Cut_Man_t * Cut_ManStart( Cut_Params_t * pParams ) ***********************************************************************/ void Cut_ManStop( Cut_Man_t * p ) { - Cut_Cut_t * pCut; - int i; -// extern int nTruthDsd; -// printf( "Decomposable cuts = %d.\n", nTruthDsd ); - - Vec_PtrForEachEntry( p->vCutsNew, pCut, i ) - if ( pCut != NULL ) - { - int k = 0; - } if ( p->vCutsNew ) Vec_PtrFree( p->vCutsNew ); if ( p->vCutsOld ) Vec_PtrFree( p->vCutsOld ); if ( p->vCutsTemp ) Vec_PtrFree( p->vCutsTemp ); diff --git a/src/opt/cut/cutNode.c b/src/opt/cut/cutNode.c index 1f93b14b..2d17020b 100644 --- a/src/opt/cut/cutNode.c +++ b/src/opt/cut/cutNode.c @@ -561,7 +561,8 @@ int Cut_ManMappingArea_rec( Cut_Man_t * p, int Node ) ***********************************************************************/ void Cut_NodeDoComputeCuts( Cut_Man_t * p, Cut_List_t * pSuper, int Node, int fCompl0, int fCompl1, Cut_Cut_t * pList0, Cut_Cut_t * pList1, int fTriv, int TreeCode ) { - Cut_Cut_t * pStop0, * pStop1, * pTemp0, * pTemp1, * pStore0, * pStore1; + Cut_Cut_t * pStop0, * pStop1, * pTemp0, * pTemp1; + Cut_Cut_t * pStore0 = NULL, * pStore1 = NULL; // Suppress "might be used uninitialized" int i, nCutsOld, Limit; // start with the elementary cut if ( fTriv ) @@ -667,7 +668,8 @@ Quits: Cut_Cut_t * Cut_NodeUnionCuts( Cut_Man_t * p, Vec_Int_t * vNodes ) { Cut_List_t Super, * pSuper = &Super; - Cut_Cut_t * pList, * pListStart, * pCut, * pCut2, * pTop; + Cut_Cut_t * pList, * pListStart, * pCut, * pCut2; + Cut_Cut_t * pTop = NULL; // Suppress "might be used uninitialized" int i, k, Node, Root, Limit = p->pParams->nVarsMax; int clk = clock(); @@ -973,11 +975,9 @@ int Cut_CutListVerify( Cut_Cut_t * pList ) { if ( Cut_CutCheckDominance( pDom, pCut ) ) { - int x = 0; printf( "******************* These are contained cuts:\n" ); Cut_CutPrint( pDom, 1 ); Cut_CutPrint( pDom, 1 ); - return 0; } } diff --git a/src/opt/cut/cutOracle.c b/src/opt/cut/cutOracle.c index 3eb4462b..4ec6bc05 100644 --- a/src/opt/cut/cutOracle.c +++ b/src/opt/cut/cutOracle.c @@ -70,7 +70,6 @@ static Cut_Cut_t * Cut_CutMerge( Cut_Oracle_t * p, Cut_Cut_t * pCut0, Cut_Cut_t Cut_Oracle_t * Cut_OracleStart( Cut_Man_t * pMan ) { Cut_Oracle_t * p; - int clk = clock(); assert( pMan->pParams->nVarsMax >= 3 && pMan->pParams->nVarsMax <= CUT_SIZE_MAX ); assert( pMan->pParams->fRecord ); @@ -135,10 +134,7 @@ void Cut_OracleStop( Cut_Oracle_t * p ) } Vec_PtrForEachEntry( p->vCutsNew, pCut, i ) - if ( pCut != NULL ) - { - int k = 0; - } + if ( p->vCuts0 ) Vec_PtrFree( p->vCuts0 ); if ( p->vCuts1 ) Vec_PtrFree( p->vCuts1 ); if ( p->vCutsNew ) Vec_PtrFree( p->vCutsNew ); diff --git a/src/opt/cut/cutPre22.c b/src/opt/cut/cutPre22.c index 5cb87a9c..5ba860c9 100644 --- a/src/opt/cut/cutPre22.c +++ b/src/opt/cut/cutPre22.c @@ -74,30 +74,30 @@ struct Cut_CMan_t_ }; // NP-classes of functions of 3 variables (22) -static char * s_NP3[22] = { - " 0\n", // 00 const 0 // 0 vars - " 1\n", // 01 const 1 // 0 vars - "1 1\n", // 02 a // 1 vars - "11 1\n", // 03 ab // 2 vars - "11 0\n", // 04 (ab)' // 2 vars - "10 1\n01 1\n", // 05 a<+>b // 2 vars - "111 1\n", // 06 0s abc // 3 vars - "111 0\n", // 07 (abc)' // - "11- 1\n1-1 1\n", // 08 1p a(b+c) // - "11- 0\n1-1 0\n", // 09 (a(b+c))' // - "111 1\n100 1\n010 1\n001 1\n", // 10 2s a<+>b<+>c // - "10- 0\n1-0 0\n011 0\n", // 11 3p a<+>bc // - "101 1\n110 1\n", // 12 4p a(b<+>c) // - "101 0\n110 0\n", // 13 (a(b<+>c))' // - "11- 1\n1-1 1\n-11 1\n", // 14 5s ab+bc+ac // - "111 1\n000 1\n", // 15 6s abc+a'b'c' // - "111 0\n000 0\n", // 16 (abc+a'b'c')' // - "11- 1\n-11 1\n0-1 1\n", // 17 7 ab+bc+a'c // - "011 1\n101 1\n110 1\n", // 18 8s a'bc+ab'c+abc' // - "011 0\n101 0\n110 0\n", // 19 (a'bc+ab'c+abc')' // - "100 1\n-11 1\n", // 20 9p ab'c'+bc // - "100 0\n-11 0\n" // 21 (ab'c'+bc)' // -}; +//static char * s_NP3[22] = { +// " 0\n", // 00 const 0 // 0 vars +// " 1\n", // 01 const 1 // 0 vars +// "1 1\n", // 02 a // 1 vars +// "11 1\n", // 03 ab // 2 vars +// "11 0\n", // 04 (ab)' // 2 vars +// "10 1\n01 1\n", // 05 a<+>b // 2 vars +// "111 1\n", // 06 0s abc // 3 vars +// "111 0\n", // 07 (abc)' // +// "11- 1\n1-1 1\n", // 08 1p a(b+c) // +// "11- 0\n1-1 0\n", // 09 (a(b+c))' // +// "111 1\n100 1\n010 1\n001 1\n", // 10 2s a<+>b<+>c // +// "10- 0\n1-0 0\n011 0\n", // 11 3p a<+>bc // +// "101 1\n110 1\n", // 12 4p a(b<+>c) // +// "101 0\n110 0\n", // 13 (a(b<+>c))' // +// "11- 1\n1-1 1\n-11 1\n", // 14 5s ab+bc+ac // +// "111 1\n000 1\n", // 15 6s abc+a'b'c' // +// "111 0\n000 0\n", // 16 (abc+a'b'c')' // +// "11- 1\n-11 1\n0-1 1\n", // 17 7 ab+bc+a'c // +// "011 1\n101 1\n110 1\n", // 18 8s a'bc+ab'c+abc' // +// "011 0\n101 0\n110 0\n", // 19 (a'bc+ab'c+abc')' // +// "100 1\n-11 1\n", // 20 9p ab'c'+bc // +// "100 0\n-11 0\n" // 21 (ab'c'+bc)' // +//}; // NP-classes of functions of 3 variables (22) static char * s_NP3Names[22] = { @@ -126,16 +126,16 @@ static char * s_NP3Names[22] = { }; // the number of variables in each function -static int s_NP3VarNums[22] = { 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }; +//static int s_NP3VarNums[22] = { 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }; // NPN classes of functions of exactly 3 inputs (10) static int s_NPNe3[10] = { 6, 8, 10, 11, 12, 14, 15, 17, 18, 20 }; // NPN classes of functions of exactly 3 inputs that are symmetric (5) -static int s_NPNe3s[10] = { 6, 10, 14, 15, 18 }; +//static int s_NPNe3s[10] = { 6, 10, 14, 15, 18 }; // NPN classes of functions of exactly 3 inputs (4) -static int s_NPNe3p[10] = { 8, 11, 12, 20 }; +//static int s_NPNe3p[10] = { 8, 11, 12, 20 }; static Cut_CMan_t * Cut_CManStart(); static void Cut_CManStop( Cut_CMan_t * p ); @@ -231,7 +231,7 @@ void Cut_CellPrecompute() { Cut_CMan_t * p; Cut_Cell_t * pCell, * pTemp; - int i1, i2, i3, i, j, k, c, clk = clock(), clk2 = clock(); + int i1, i2, i3, i, j, k, c, clk = clock(); //, clk2 = clock(); p = Cut_CManStart(); @@ -397,7 +397,7 @@ void Cut_CellPrecompute() } } - printf( "BASIC: Total = %d. Good = %d. Entry = %d. ", p->nTotal, p->nGood, sizeof(Cut_Cell_t) ); + printf( "BASIC: Total = %d. Good = %d. Entry = %d. ", (int)p->nTotal, (int)p->nGood, (int)sizeof(Cut_Cell_t) ); PRT( "Time", clock() - clk ); printf( "Cells: " ); for ( i = 0; i <= 9; i++ ) @@ -481,7 +481,7 @@ void Cut_CellPrecompute() //p->timeTable += clock() - clk2; } - printf( "VAR %d: Total = %d. Good = %d. Entry = %d. ", k, p->nTotal, p->nGood, sizeof(Cut_Cell_t) ); + printf( "VAR %d: Total = %d. Good = %d. Entry = %d. ", k, p->nTotal, p->nGood, (int)sizeof(Cut_Cell_t) ); PRT( "Time", clock() - clk ); printf( "Cells: " ); for ( i = 0; i <= 9; i++ ) @@ -517,7 +517,7 @@ int Cut_CellTableLookup( Cut_CMan_t * p, Cut_Cell_t * pCell ) Cut_Cell_t ** pSlot, * pTemp; unsigned Hash; Hash = Extra_TruthHash( pCell->uTruth, Extra_TruthWordNum( pCell->nVars ) ); - if ( !st_find_or_add( p->tTable, (char *)Hash, (char ***)&pSlot ) ) + if ( !st_find_or_add( p->tTable, (char *)(PORT_PTRUINT_T)Hash, (char ***)&pSlot ) ) *pSlot = NULL; for ( pTemp = *pSlot; pTemp; pTemp = pTemp->pNext ) { @@ -863,15 +863,15 @@ void Cut_CellDumpToFile() for ( i = 0; i < 4; i++ ) if ( pTemp->nUsed == 0 ) - BoxUsed[ pTemp->Box[i] ][0]++; + BoxUsed[ (int)pTemp->Box[i] ][0]++; else if ( pTemp->nUsed < 10 ) - BoxUsed[ pTemp->Box[i] ][1]++; + BoxUsed[ (int)pTemp->Box[i] ][1]++; else if ( pTemp->nUsed < 100 ) - BoxUsed[ pTemp->Box[i] ][2]++; + BoxUsed[ (int)pTemp->Box[i] ][2]++; else if ( pTemp->nUsed < 1000 ) - BoxUsed[ pTemp->Box[i] ][3]++; + BoxUsed[ (int)pTemp->Box[i] ][3]++; else - BoxUsed[ pTemp->Box[i] ][4]++; + BoxUsed[ (int)pTemp->Box[i] ][4]++; } } @@ -962,7 +962,7 @@ int Cut_CellTruthLookup( unsigned * pTruth, int nVars ) // check if the cell exists Hash = Extra_TruthHash( pCell->uTruth, Extra_TruthWordNum(pCell->nVars) ); - if ( st_lookup( p->tTable, (char *)Hash, (char **)&pTemp ) ) + if ( st_lookup( p->tTable, (char *)(PORT_PTRUINT_T)Hash, (char **)&pTemp ) ) { for ( ; pTemp; pTemp = pTemp->pNext ) { diff --git a/src/opt/cut/cutTruth.c b/src/opt/cut/cutTruth.c index c3514ad7..6ecf20e4 100644 --- a/src/opt/cut/cutTruth.c +++ b/src/opt/cut/cutTruth.c @@ -30,9 +30,10 @@ /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// -extern int nTotal = 0; -extern int nGood = 0; -extern int nEqual = 0; +// used in abcCut.c +int nTotal = 0; +int nGood = 0; +int nEqual = 0; //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// |