mirror of https://github.com/YosysHQ/abc.git
Compiler warnings.
This commit is contained in:
parent
80f46fa2ae
commit
2b85ef06e5
|
|
@ -93,8 +93,8 @@ static inline Rtm_Init_t Rtm_ObjGetLast1( Rtm_Edg_t * pEdge ) { retur
|
||||||
static inline Rtm_Init_t Rtm_ObjGetOne1( Rtm_Edg_t * pEdge, int i ) { assert( i < (int)pEdge->nLats ); return (Rtm_Init_t)((pEdge->LData >> (i << 1)) & 3); }
|
static inline Rtm_Init_t Rtm_ObjGetOne1( Rtm_Edg_t * pEdge, int i ) { assert( i < (int)pEdge->nLats ); return (Rtm_Init_t)((pEdge->LData >> (i << 1)) & 3); }
|
||||||
static inline Rtm_Init_t Rtm_ObjRemFirst1( Rtm_Edg_t * pEdge ) { int Val = pEdge->LData & 3; pEdge->LData >>= 2; assert(pEdge->nLats > 0); pEdge->nLats--; return (Rtm_Init_t)Val; }
|
static inline Rtm_Init_t Rtm_ObjRemFirst1( Rtm_Edg_t * pEdge ) { int Val = pEdge->LData & 3; pEdge->LData >>= 2; assert(pEdge->nLats > 0); pEdge->nLats--; return (Rtm_Init_t)Val; }
|
||||||
static inline Rtm_Init_t Rtm_ObjRemLast1( Rtm_Edg_t * pEdge ) { int Val = (pEdge->LData >> ((pEdge->nLats-1)<<1)) & 3; pEdge->LData ^= Val << ((pEdge->nLats-1)<<1); assert(pEdge->nLats > 0); pEdge->nLats--; return (Rtm_Init_t)Val; }
|
static inline Rtm_Init_t Rtm_ObjRemLast1( Rtm_Edg_t * pEdge ) { int Val = (pEdge->LData >> ((pEdge->nLats-1)<<1)) & 3; pEdge->LData ^= Val << ((pEdge->nLats-1)<<1); assert(pEdge->nLats > 0); pEdge->nLats--; return (Rtm_Init_t)Val; }
|
||||||
static inline void Rtm_ObjAddFirst1( Rtm_Edg_t * pEdge, Rtm_Init_t Val ) { assert( Val > 0 && Val < 4 ); pEdge->LData = (pEdge->LData << 2) | Val; pEdge->nLats++; }
|
static inline void Rtm_ObjAddFirst1( Rtm_Edg_t * pEdge, Rtm_Init_t Val ) { assert( Val > 0 ); pEdge->LData = (pEdge->LData << 2) | Val; pEdge->nLats++; }
|
||||||
static inline void Rtm_ObjAddLast1( Rtm_Edg_t * pEdge, Rtm_Init_t Val ) { assert( Val > 0 && Val < 4 ); pEdge->LData |= Val << (pEdge->nLats<<1); pEdge->nLats++; }
|
static inline void Rtm_ObjAddLast1( Rtm_Edg_t * pEdge, Rtm_Init_t Val ) { assert( Val > 0 ); pEdge->LData |= Val << (pEdge->nLats<<1); pEdge->nLats++; }
|
||||||
|
|
||||||
static inline Rtm_Init_t Rtm_ObjGetFirst2( Rtm_Man_t * p, Rtm_Edg_t * pEdge ) { return (Rtm_Init_t)Rtm_InitGetTwo( p->pExtra + pEdge->LData, 0 ); }
|
static inline Rtm_Init_t Rtm_ObjGetFirst2( Rtm_Man_t * p, Rtm_Edg_t * pEdge ) { return (Rtm_Init_t)Rtm_InitGetTwo( p->pExtra + pEdge->LData, 0 ); }
|
||||||
static inline Rtm_Init_t Rtm_ObjGetLast2( Rtm_Man_t * p, Rtm_Edg_t * pEdge ) { return (Rtm_Init_t)Rtm_InitGetTwo( p->pExtra + pEdge->LData, pEdge->nLats - 1 ); }
|
static inline Rtm_Init_t Rtm_ObjGetLast2( Rtm_Man_t * p, Rtm_Edg_t * pEdge ) { return (Rtm_Init_t)Rtm_InitGetTwo( p->pExtra + pEdge->LData, pEdge->nLats - 1 ); }
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ static inline int Au_ObjCopy( Au_Obj_t * p ) { retur
|
||||||
static inline void Au_ObjSetCopy( Au_Obj_t * p, int c ) { Vec_IntWriteEntry( &Au_ObjNtk(p)->vCopies, Au_ObjId(p), c ); }
|
static inline void Au_ObjSetCopy( Au_Obj_t * p, int c ) { Vec_IntWriteEntry( &Au_ObjNtk(p)->vCopies, Au_ObjId(p), c ); }
|
||||||
|
|
||||||
static inline int Au_ObjFanout( Au_Obj_t * p, int i ) { assert(p->Type == AU_OBJ_BOX && i >= 0 && i < p->Fanins[p->nFanins] && p->Fanins[i]); return p->Fanins[p->nFanins + 1 + i]; }
|
static inline int Au_ObjFanout( Au_Obj_t * p, int i ) { assert(p->Type == AU_OBJ_BOX && i >= 0 && i < p->Fanins[p->nFanins] && p->Fanins[i]); return p->Fanins[p->nFanins + 1 + i]; }
|
||||||
static inline int Au_ObjSetFanout( Au_Obj_t * p, int i, int f ) { assert(p->Type == AU_OBJ_BOX && i >= 0 && i < p->Fanins[p->nFanins] && p->Fanins[i] == 0 && f > 0); p->Fanins[p->nFanins + 1 + i] = f; }
|
static inline void Au_ObjSetFanout( Au_Obj_t * p, int i, int f ) { assert(p->Type == AU_OBJ_BOX && i >= 0 && i < p->Fanins[p->nFanins] && p->Fanins[i] == 0 && f > 0); p->Fanins[p->nFanins + 1 + i] = f; }
|
||||||
|
|
||||||
static inline void Au_NtkIncrementTravId( Au_Ntk_t * p ) { if (p->vTravIds.pArray == NULL) Vec_IntFill(&p->vTravIds, Au_NtkObjNumMax(p)+500, 0); p->nTravIds++; assert(p->nTravIds < (1<<30)); }
|
static inline void Au_NtkIncrementTravId( Au_Ntk_t * p ) { if (p->vTravIds.pArray == NULL) Vec_IntFill(&p->vTravIds, Au_NtkObjNumMax(p)+500, 0); p->nTravIds++; assert(p->nTravIds < (1<<30)); }
|
||||||
static inline void Au_ObjSetTravIdCurrent( Au_Obj_t * p ) { Vec_IntSetEntry(&Au_ObjNtk(p)->vTravIds, Au_ObjId(p), Au_ObjNtk(p)->nTravIds ); }
|
static inline void Au_ObjSetTravIdCurrent( Au_Obj_t * p ) { Vec_IntSetEntry(&Au_ObjNtk(p)->vTravIds, Au_ObjId(p), Au_ObjNtk(p)->nTravIds ); }
|
||||||
|
|
|
||||||
|
|
@ -1506,8 +1506,8 @@ int match1by1(Abc_Ntk_t * pNtk1, Vec_Ptr_t ** nodesInLevel1, Vec_Int_t ** iMatch
|
||||||
vSupp = Abc_NtkNodeSupport( FpNtk2, &pObj, 1 );
|
vSupp = Abc_NtkNodeSupport( FpNtk2, &pObj, 1 );
|
||||||
|
|
||||||
for(n = 0; n < vSupp->nSize; n++)
|
for(n = 0; n < vSupp->nSize; n++)
|
||||||
if( Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1 < (unsigned)(Vec_IntSize(iMatch2[i]))-idx+1 &&
|
if( (int)Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1 < (Vec_IntSize(iMatch2[i]))-idx+1 &&
|
||||||
Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1 >= 0)
|
(int)Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1 >= 0)
|
||||||
suppNum2[Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1] += Vec_IntFind( matchedOutputs2, m) + 1;
|
suppNum2[Abc_ObjId((Abc_Obj_t *)vSupp->pArray[n])-1] += Vec_IntFind( matchedOutputs2, m) + 1;
|
||||||
|
|
||||||
Vec_PtrFree( vSupp );
|
Vec_PtrFree( vSupp );
|
||||||
|
|
|
||||||
|
|
@ -1632,7 +1632,6 @@ ddSymmSiftingBackward(
|
||||||
Move *move;
|
Move *move;
|
||||||
int res = -1;
|
int res = -1;
|
||||||
|
|
||||||
size = size;
|
|
||||||
for (move = moves; move != NULL; move = move->next) {
|
for (move = moves; move != NULL; move = move->next) {
|
||||||
if (move->size < size) {
|
if (move->size < size) {
|
||||||
size = move->size;
|
size = move->size;
|
||||||
|
|
|
||||||
|
|
@ -283,7 +283,7 @@ void printCCtrInfo(cycleCtr* cCtr, int nFuncs)
|
||||||
|
|
||||||
// if highest bit in F ( all ones min term ) is one => inverse
|
// if highest bit in F ( all ones min term ) is one => inverse
|
||||||
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
||||||
inline int minimalInitialFlip1(word* pInOut, int nVars)
|
int minimalInitialFlip1(word* pInOut, int nVars)
|
||||||
{
|
{
|
||||||
word oneWord=1;
|
word oneWord=1;
|
||||||
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
||||||
|
|
@ -298,7 +298,7 @@ inline int minimalInitialFlip1(word* pInOut, int nVars)
|
||||||
// keeps smaller.
|
// keeps smaller.
|
||||||
// same for all vars in F.
|
// same for all vars in F.
|
||||||
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
||||||
inline int minimalFlip1(word* pInOut, word* pMinimal, word* PDuplicat, int nVars)
|
int minimalFlip1(word* pInOut, word* pMinimal, word* PDuplicat, int nVars)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int blockSize = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
int blockSize = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
||||||
|
|
@ -329,7 +329,7 @@ inline int minimalFlip1(word* pInOut, word* pMinimal, word* PDuplicat, int nVar
|
||||||
// keeps smaller.
|
// keeps smaller.
|
||||||
// same for all vars in F.
|
// same for all vars in F.
|
||||||
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
||||||
inline int minimalSwap1(word* pInOut, word* pMinimal, word* PDuplicat, int nVars)
|
int minimalSwap1(word* pInOut, word* pMinimal, word* PDuplicat, int nVars)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int blockSize = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
int blockSize = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
||||||
|
|
@ -359,7 +359,7 @@ inline int minimalSwap1(word* pInOut, word* pMinimal, word* PDuplicat, int nVar
|
||||||
|
|
||||||
// if highest bit in F ( all ones min term ) is one => inverse
|
// if highest bit in F ( all ones min term ) is one => inverse
|
||||||
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
||||||
inline int minimalInitialFlip(word* pInOut, int nVars, unsigned* p_uCanonPhase)
|
int minimalInitialFlip(word* pInOut, int nVars, unsigned* p_uCanonPhase)
|
||||||
{
|
{
|
||||||
word oneWord=1;
|
word oneWord=1;
|
||||||
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
||||||
|
|
@ -375,7 +375,7 @@ inline int minimalInitialFlip(word* pInOut, int nVars, unsigned* p_uCanonPhase)
|
||||||
// keeps smaller.
|
// keeps smaller.
|
||||||
// same for all vars in F.
|
// same for all vars in F.
|
||||||
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
// returns: if pInOnt changed(minimized) by function return 1 if not 0
|
||||||
inline int minimalFlip(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, unsigned* p_uCanonPhase)
|
int minimalFlip(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, unsigned* p_uCanonPhase)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned minTemp = *p_uCanonPhase;
|
unsigned minTemp = *p_uCanonPhase;
|
||||||
|
|
@ -411,7 +411,7 @@ inline int minimalFlip(word* pInOut, word* pMinimal, word* PDuplicat, int nVars
|
||||||
}
|
}
|
||||||
|
|
||||||
// swaps iVar and iVar+1 elements in pCanonPerm ant p_uCanonPhase
|
// swaps iVar and iVar+1 elements in pCanonPerm ant p_uCanonPhase
|
||||||
inline void swapInfoAdjacentVars(int iVar, char * pCanonPerm, unsigned* p_uCanonPhase)
|
void swapInfoAdjacentVars(int iVar, char * pCanonPerm, unsigned* p_uCanonPhase)
|
||||||
{
|
{
|
||||||
char Temp = pCanonPerm[iVar];
|
char Temp = pCanonPerm[iVar];
|
||||||
pCanonPerm[iVar] = pCanonPerm[iVar+1];
|
pCanonPerm[iVar] = pCanonPerm[iVar+1];
|
||||||
|
|
@ -435,7 +435,7 @@ inline void swapInfoAdjacentVars(int iVar, char * pCanonPerm, unsigned* p_uCanon
|
||||||
|
|
||||||
/*
|
/*
|
||||||
// this version is buggy and is fixed below
|
// this version is buggy and is fixed below
|
||||||
inline int minimalSwap(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, char * pCanonPerm, char * tempArray, unsigned* p_uCanonPhase)
|
int minimalSwap(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, char * pCanonPerm, char * tempArray, unsigned* p_uCanonPhase)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int blockSizeWord = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
int blockSizeWord = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
||||||
|
|
@ -472,7 +472,7 @@ inline int minimalSwap(word* pInOut, word* pMinimal, word* PDuplicat, int nVars
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline int minimalSwap(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, char * pCanonPerm, char * tempArray, unsigned* p_uCanonPhase)
|
int minimalSwap(word* pInOut, word* pMinimal, word* PDuplicat, int nVars, char * pCanonPerm, char * tempArray, unsigned* p_uCanonPhase)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int blockSizeWord = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
int blockSizeWord = Kit_TruthWordNum_64bit( nVars )*sizeof(word);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ int luckyCheck(word* pAfter, word* pBefore, int nVars, char * pCanonPerm, unsign
|
||||||
|
|
||||||
// there are 4 parts in every block to compare and rearrange - quoters(0Q,1Q,2Q,3Q)
|
// there are 4 parts in every block to compare and rearrange - quoters(0Q,1Q,2Q,3Q)
|
||||||
//updataInfo updates CanonPerm and CanonPhase based on what quoter in position iQ and jQ
|
//updataInfo updates CanonPerm and CanonPhase based on what quoter in position iQ and jQ
|
||||||
inline void updataInfo(int iQ, int jQ, int iVar, char * pCanonPerm, unsigned* pCanonPhase)
|
void updataInfo(int iQ, int jQ, int iVar, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
*pCanonPhase = adjustInfoAfterSwap(pCanonPerm, *pCanonPhase, iVar, ((abs(iQ-jQ)-1)<<2) + iQ );
|
*pCanonPhase = adjustInfoAfterSwap(pCanonPerm, *pCanonPhase, iVar, ((abs(iQ-jQ)-1)<<2) + iQ );
|
||||||
|
|
||||||
|
|
@ -81,7 +81,7 @@ inline void updataInfo(int iQ, int jQ, int iVar, char * pCanonPerm, unsigned* p
|
||||||
|
|
||||||
// returns the first shift from the left in word x that has One bit in it.
|
// returns the first shift from the left in word x that has One bit in it.
|
||||||
// blockSize = ShiftSize/4
|
// blockSize = ShiftSize/4
|
||||||
inline int firstShiftWithOneBit(word x, int blockSize)
|
int firstShiftWithOneBit(word x, int blockSize)
|
||||||
{
|
{
|
||||||
int n = 0;
|
int n = 0;
|
||||||
if(blockSize == 16){ return 0;}
|
if(blockSize == 16){ return 0;}
|
||||||
|
|
@ -98,7 +98,7 @@ inline int firstShiftWithOneBit(word x, int blockSize)
|
||||||
|
|
||||||
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
||||||
// It updates Info at the end
|
// It updates Info at the end
|
||||||
inline void arrangeQuoters_superFast_lessThen5(word* pInOut, int start, int iQ, int jQ, int kQ, int lQ, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void arrangeQuoters_superFast_lessThen5(word* pInOut, int start, int iQ, int jQ, int kQ, int lQ, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int i, blockSize = 1<<iVar;
|
int i, blockSize = 1<<iVar;
|
||||||
// printf("in arrangeQuoters_superFast_lessThen5\n");
|
// printf("in arrangeQuoters_superFast_lessThen5\n");
|
||||||
|
|
@ -128,7 +128,7 @@ inline void arrangeQuoters_superFast_lessThen5(word* pInOut, int start, int iQ,
|
||||||
// };
|
// };
|
||||||
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 0Q and 3Q
|
// DifStart contains the information about the first different bit in 0Q and 3Q
|
||||||
inline int minTemp0_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
int minTemp0_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, blockSize = 1<<iVar;
|
int i, blockSize = 1<<iVar;
|
||||||
word temp;
|
word temp;
|
||||||
|
|
@ -154,7 +154,7 @@ inline int minTemp0_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
|
|
||||||
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 1Q and 2Q
|
// DifStart contains the information about the first different bit in 1Q and 2Q
|
||||||
inline int minTemp1_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
int minTemp1_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, blockSize = 1<<iVar;
|
int i, blockSize = 1<<iVar;
|
||||||
word temp;
|
word temp;
|
||||||
|
|
@ -179,7 +179,7 @@ inline int minTemp1_fast(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
|
|
||||||
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and 1 if jQ is
|
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and 1 if jQ is
|
||||||
// DifStart contains the information about the first different bit in iQ and jQ
|
// DifStart contains the information about the first different bit in iQ and jQ
|
||||||
inline int minTemp2_fast(word* pInOut, int iVar, int iQ, int jQ, int nWords, int* pDifStart)
|
int minTemp2_fast(word* pInOut, int iVar, int iQ, int jQ, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, blockSize = 1<<iVar;
|
int i, blockSize = 1<<iVar;
|
||||||
word temp;
|
word temp;
|
||||||
|
|
@ -202,7 +202,7 @@ inline int minTemp2_fast(word* pInOut, int iVar, int iQ, int jQ, int nWords, int
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// same as minTemp2_fast but this one has a start position
|
// same as minTemp2_fast but this one has a start position
|
||||||
inline int minTemp3_fast(word* pInOut, int iVar, int start, int finish, int iQ, int jQ, int* pDifStart)
|
int minTemp3_fast(word* pInOut, int iVar, int start, int finish, int iQ, int jQ, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, blockSize = 1<<iVar;
|
int i, blockSize = 1<<iVar;
|
||||||
word temp;
|
word temp;
|
||||||
|
|
@ -226,7 +226,7 @@ inline int minTemp3_fast(word* pInOut, int iVar, int start, int finish, int iQ,
|
||||||
}
|
}
|
||||||
|
|
||||||
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
||||||
inline void minimalSwapAndFlipIVar_superFast_lessThen5(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_lessThen5(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int min1, min2, DifStart0, DifStart1, DifStartMin, DifStart4=0;
|
int min1, min2, DifStart0, DifStart1, DifStartMin, DifStart4=0;
|
||||||
int M[2];
|
int M[2];
|
||||||
|
|
@ -262,7 +262,7 @@ inline void minimalSwapAndFlipIVar_superFast_lessThen5(word* pInOut, int iVar, i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void minimalSwapAndFlipIVar_superFast_lessThen5_noEBFC(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_lessThen5_noEBFC(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int DifStart1;
|
int DifStart1;
|
||||||
if(minTemp1_fast(pInOut, iVar, nWords, &DifStart1) == 2)
|
if(minTemp1_fast(pInOut, iVar, nWords, &DifStart1) == 2)
|
||||||
|
|
@ -272,7 +272,7 @@ inline void minimalSwapAndFlipIVar_superFast_lessThen5_noEBFC(word* pInOut, int
|
||||||
|
|
||||||
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
||||||
// It updates Info at the end
|
// It updates Info at the end
|
||||||
inline void arrangeQuoters_superFast_iVar5(unsigned* pInOut, unsigned* temp, int start, int iQ, int jQ, int kQ, int lQ, char * pCanonPerm, unsigned* pCanonPhase)
|
void arrangeQuoters_superFast_iVar5(unsigned* pInOut, unsigned* temp, int start, int iQ, int jQ, int kQ, int lQ, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int i,blockSize,shiftSize;
|
int i,blockSize,shiftSize;
|
||||||
unsigned* tempPtr = temp+start;
|
unsigned* tempPtr = temp+start;
|
||||||
|
|
@ -299,7 +299,7 @@ inline void arrangeQuoters_superFast_iVar5(unsigned* pInOut, unsigned* temp, int
|
||||||
|
|
||||||
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 0Q and 3Q
|
// DifStart contains the information about the first different bit in 0Q and 3Q
|
||||||
inline int minTemp0_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
int minTemp0_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, temp;
|
int i, temp;
|
||||||
// printf("in minTemp0_fast_iVar5\n");
|
// printf("in minTemp0_fast_iVar5\n");
|
||||||
|
|
@ -325,7 +325,7 @@ inline int minTemp0_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
||||||
|
|
||||||
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 1Q and 2Q
|
// DifStart contains the information about the first different bit in 1Q and 2Q
|
||||||
inline int minTemp1_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
int minTemp1_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, temp;
|
int i, temp;
|
||||||
// printf("in minTemp1_fast_iVar5\n");
|
// printf("in minTemp1_fast_iVar5\n");
|
||||||
|
|
@ -351,7 +351,7 @@ inline int minTemp1_fast_iVar5(unsigned* pInOut, int nWords, int* pDifStart)
|
||||||
|
|
||||||
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and visa versa
|
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in iQ and jQ
|
// DifStart contains the information about the first different bit in iQ and jQ
|
||||||
inline int minTemp2_fast_iVar5(unsigned* pInOut, int iQ, int jQ, int nWords, int* pDifStart)
|
int minTemp2_fast_iVar5(unsigned* pInOut, int iQ, int jQ, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, temp;
|
int i, temp;
|
||||||
// printf("in minTemp2_fast_iVar5\n");
|
// printf("in minTemp2_fast_iVar5\n");
|
||||||
|
|
@ -377,7 +377,7 @@ inline int minTemp2_fast_iVar5(unsigned* pInOut, int iQ, int jQ, int nWords, int
|
||||||
}
|
}
|
||||||
|
|
||||||
// same as minTemp2_fast but this one has a start position
|
// same as minTemp2_fast but this one has a start position
|
||||||
inline int minTemp3_fast_iVar5(unsigned* pInOut, int start, int finish, int iQ, int jQ, int* pDifStart)
|
int minTemp3_fast_iVar5(unsigned* pInOut, int start, int finish, int iQ, int jQ, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, temp;
|
int i, temp;
|
||||||
// printf("in minTemp3_fast_iVar5\n");
|
// printf("in minTemp3_fast_iVar5\n");
|
||||||
|
|
@ -403,7 +403,7 @@ inline int minTemp3_fast_iVar5(unsigned* pInOut, int start, int finish, int iQ,
|
||||||
}
|
}
|
||||||
|
|
||||||
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
||||||
inline void minimalSwapAndFlipIVar_superFast_iVar5(unsigned* pInOut, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_iVar5(unsigned* pInOut, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int min1, min2, DifStart0, DifStart1, DifStartMin;
|
int min1, min2, DifStart0, DifStart1, DifStartMin;
|
||||||
int M[2];
|
int M[2];
|
||||||
|
|
@ -436,7 +436,7 @@ inline void minimalSwapAndFlipIVar_superFast_iVar5(unsigned* pInOut, int nWords,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void minimalSwapAndFlipIVar_superFast_iVar5_noEBFC(unsigned* pInOut, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_iVar5_noEBFC(unsigned* pInOut, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int DifStart1;
|
int DifStart1;
|
||||||
unsigned temp[2048];
|
unsigned temp[2048];
|
||||||
|
|
@ -448,7 +448,7 @@ inline void minimalSwapAndFlipIVar_superFast_iVar5_noEBFC(unsigned* pInOut, int
|
||||||
|
|
||||||
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
// It rearranges InOut (swaps and flips through rearrangement of quoters)
|
||||||
// It updates Info at the end
|
// It updates Info at the end
|
||||||
inline void arrangeQuoters_superFast_moreThen5(word* pInOut, word* temp, int start, int iQ, int jQ, int kQ, int lQ, int iVar, char * pCanonPerm, unsigned* pCanonPhase)
|
void arrangeQuoters_superFast_moreThen5(word* pInOut, word* temp, int start, int iQ, int jQ, int kQ, int lQ, int iVar, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int i,wordBlock,blockSize,shiftSize;
|
int i,wordBlock,blockSize,shiftSize;
|
||||||
word* tempPtr = temp+start;
|
word* tempPtr = temp+start;
|
||||||
|
|
@ -478,7 +478,7 @@ inline void arrangeQuoters_superFast_moreThen5(word* pInOut, word* temp, int sta
|
||||||
|
|
||||||
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
//It compares 0Q and 3Q and returns 0 if 0Q is smaller then 3Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 0Q and 3Q
|
// DifStart contains the information about the first different bit in 0Q and 3Q
|
||||||
inline int minTemp0_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDifStart)
|
int minTemp0_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, j, temp;
|
int i, j, temp;
|
||||||
int wordBlock = 1<<(iVar-6);
|
int wordBlock = 1<<(iVar-6);
|
||||||
|
|
@ -511,7 +511,7 @@ inline int minTemp0_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDif
|
||||||
|
|
||||||
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
//It compares 1Q and 2Q and returns 1 if 1Q is smaller then 2Q ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in 1Q and 2Q
|
// DifStart contains the information about the first different bit in 1Q and 2Q
|
||||||
inline int minTemp1_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDifStart)
|
int minTemp1_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, j, temp;
|
int i, j, temp;
|
||||||
int wordBlock = 1<<(iVar-6);
|
int wordBlock = 1<<(iVar-6);
|
||||||
|
|
@ -543,7 +543,7 @@ inline int minTemp1_fast_moreThen5(word* pInOut, int iVar, int nWords, int* pDif
|
||||||
|
|
||||||
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and visa versa
|
//It compares iQ and jQ and returns 0 if iQ is smaller then jQ ( comparison starts at highest bit) and visa versa
|
||||||
// DifStart contains the information about the first different bit in iQ and jQ
|
// DifStart contains the information about the first different bit in iQ and jQ
|
||||||
inline int minTemp2_fast_moreThen5(word* pInOut, int iVar, int iQ, int jQ, int nWords, int* pDifStart)
|
int minTemp2_fast_moreThen5(word* pInOut, int iVar, int iQ, int jQ, int nWords, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, j, temp;
|
int i, j, temp;
|
||||||
int wordBlock = 1<<(iVar-6);
|
int wordBlock = 1<<(iVar-6);
|
||||||
|
|
@ -574,7 +574,7 @@ inline int minTemp2_fast_moreThen5(word* pInOut, int iVar, int iQ, int jQ, int n
|
||||||
}
|
}
|
||||||
|
|
||||||
// same as minTemp2_fast but this one has a start position
|
// same as minTemp2_fast but this one has a start position
|
||||||
inline int minTemp3_fast_moreThen5(word* pInOut, int iVar, int start, int finish, int iQ, int jQ, int* pDifStart)
|
int minTemp3_fast_moreThen5(word* pInOut, int iVar, int start, int finish, int iQ, int jQ, int* pDifStart)
|
||||||
{
|
{
|
||||||
int i, j, temp;
|
int i, j, temp;
|
||||||
int wordBlock = 1<<(iVar-6);
|
int wordBlock = 1<<(iVar-6);
|
||||||
|
|
@ -605,7 +605,7 @@ inline int minTemp3_fast_moreThen5(word* pInOut, int iVar, int start, int finish
|
||||||
}
|
}
|
||||||
|
|
||||||
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
// It considers all swap and flip possibilities of iVar and iVar+1 and switches InOut to a minimal of them
|
||||||
inline void minimalSwapAndFlipIVar_superFast_moreThen5(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_moreThen5(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int min1, min2, DifStart0, DifStart1, DifStartMin;
|
int min1, min2, DifStart0, DifStart1, DifStartMin;
|
||||||
int M[2];
|
int M[2];
|
||||||
|
|
@ -640,7 +640,7 @@ inline void minimalSwapAndFlipIVar_superFast_moreThen5(word* pInOut, int iVar, i
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void minimalSwapAndFlipIVar_superFast_moreThen5_noEBFC(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
void minimalSwapAndFlipIVar_superFast_moreThen5_noEBFC(word* pInOut, int iVar, int nWords, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int DifStart1;
|
int DifStart1;
|
||||||
word temp[1024];
|
word temp[1024];
|
||||||
|
|
@ -649,7 +649,7 @@ inline void minimalSwapAndFlipIVar_superFast_moreThen5_noEBFC(word* pInOut, int
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////// for all /////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////// for all /////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
inline void minimalInitialFlip_fast_16Vars(word* pInOut, int nVars, unsigned* pCanonPhase)
|
void minimalInitialFlip_fast_16Vars(word* pInOut, int nVars, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
word oneWord=1;
|
word oneWord=1;
|
||||||
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
if( (pInOut[Kit_TruthWordNum_64bit( nVars ) -1]>>63) & oneWord )
|
||||||
|
|
@ -662,7 +662,7 @@ inline void minimalInitialFlip_fast_16Vars(word* pInOut, int nVars, unsigned* p
|
||||||
|
|
||||||
// this function finds minimal for all TIED(and tied only) iVars
|
// this function finds minimal for all TIED(and tied only) iVars
|
||||||
//it finds tied vars based on rearranged Store info - group of tied vars has the same bit count in Store
|
//it finds tied vars based on rearranged Store info - group of tied vars has the same bit count in Store
|
||||||
inline int minimalSwapAndFlipIVar_superFast_all(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
int minimalSwapAndFlipIVar_superFast_all(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
word pDuplicate[1024];
|
word pDuplicate[1024];
|
||||||
|
|
@ -702,7 +702,7 @@ inline int minimalSwapAndFlipIVar_superFast_all(word* pInOut, int nVars, int nWo
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int minimalSwapAndFlipIVar_superFast_all_noEBFC(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
int minimalSwapAndFlipIVar_superFast_all_noEBFC(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
word pDuplicate[1024];
|
word pDuplicate[1024];
|
||||||
|
|
@ -741,13 +741,13 @@ inline int minimalSwapAndFlipIVar_superFast_all_noEBFC(word* pInOut, int nVars,
|
||||||
|
|
||||||
|
|
||||||
// old version with out noEBFC
|
// old version with out noEBFC
|
||||||
// inline void luckyCanonicizerS_F_first_16Vars(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
// void luckyCanonicizerS_F_first_16Vars(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
// {
|
// {
|
||||||
// while( minimalSwapAndFlipIVar_superFast_all(pInOut, nVars, nWords, pStore, pCanonPerm, pCanonPhase) != 0)
|
// while( minimalSwapAndFlipIVar_superFast_all(pInOut, nVars, nWords, pStore, pCanonPerm, pCanonPhase) != 0)
|
||||||
// continue;
|
// continue;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
inline void luckyCanonicizerS_F_first_16Vars1(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
void luckyCanonicizerS_F_first_16Vars1(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
if(((* pCanonPhase) >> (nVars+1)) & 1)
|
if(((* pCanonPhase) >> (nVars+1)) & 1)
|
||||||
while( minimalSwapAndFlipIVar_superFast_all(pInOut, nVars, nWords, pStore, pCanonPerm, pCanonPhase) != 0)
|
while( minimalSwapAndFlipIVar_superFast_all(pInOut, nVars, nWords, pStore, pCanonPerm, pCanonPhase) != 0)
|
||||||
|
|
@ -757,7 +757,7 @@ inline void luckyCanonicizerS_F_first_16Vars1(word* pInOut, int nVars, int nWor
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void luckyCanonicizerS_F_first_16Vars11(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
void luckyCanonicizerS_F_first_16Vars11(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
word duplicate[1024];
|
word duplicate[1024];
|
||||||
char pCanonPerm1[16];
|
char pCanonPerm1[16];
|
||||||
|
|
@ -785,7 +785,7 @@ inline void luckyCanonicizerS_F_first_16Vars11(word* pInOut, int nVars, int nWo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void luckyCanonicizer_final_fast_16Vars(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
void luckyCanonicizer_final_fast_16Vars(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
assert( nVars > 6 && nVars <= 16 );
|
assert( nVars > 6 && nVars <= 16 );
|
||||||
(* pCanonPhase) = Kit_TruthSemiCanonicize_Yasha1( pInOut, nVars, pCanonPerm, pStore );
|
(* pCanonPhase) = Kit_TruthSemiCanonicize_Yasha1( pInOut, nVars, pCanonPerm, pStore );
|
||||||
|
|
@ -800,7 +800,7 @@ void bitReverceOrder(word* x, int nVars)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
inline void luckyCanonicizer_final_fast_16Vars1(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
void luckyCanonicizer_final_fast_16Vars1(word* pInOut, int nVars, int nWords, int * pStore, char * pCanonPerm, unsigned* pCanonPhase)
|
||||||
{
|
{
|
||||||
assert( nVars > 6 && nVars <= 16 );
|
assert( nVars > 6 && nVars <= 16 );
|
||||||
(* pCanonPhase) = Kit_TruthSemiCanonicize_Yasha1( pInOut, nVars, pCanonPerm, pStore );
|
(* pCanonPhase) = Kit_TruthSemiCanonicize_Yasha1( pInOut, nVars, pCanonPerm, pStore );
|
||||||
|
|
|
||||||
|
|
@ -259,7 +259,7 @@ static inline void If_Dec08MoveTo( word * pF, int nVars, int v, int p, int Pla2V
|
||||||
If_Dec08Copy( pF, pIn, nVars );
|
If_Dec08Copy( pF, pIn, nVars );
|
||||||
assert( Pla2Var[p] == v );
|
assert( Pla2Var[p] == v );
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
// derive binary function
|
// derive binary function
|
||||||
static inline int If_Dec08DeriveCount2( word * pF, word * pRes, int nVars )
|
static inline int If_Dec08DeriveCount2( word * pF, word * pRes, int nVars )
|
||||||
{
|
{
|
||||||
|
|
@ -283,7 +283,7 @@ static inline int If_Dec08DeriveCount2( word * pF, word * pRes, int nVars )
|
||||||
*pRes = ((iCof1 << nShift) | iCof0);
|
*pRes = ((iCof1 << nShift) | iCof0);
|
||||||
return MaskDec;
|
return MaskDec;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
static inline word If_DecTruthStretch( word t, int nVars )
|
static inline word If_DecTruthStretch( word t, int nVars )
|
||||||
{
|
{
|
||||||
assert( nVars > 1 );
|
assert( nVars > 1 );
|
||||||
|
|
|
||||||
|
|
@ -256,7 +256,7 @@ static inline void If_Dec10MoveTo( word * pF, int nVars, int v, int p, int Pla2V
|
||||||
If_Dec10Copy( pF, pIn, nVars );
|
If_Dec10Copy( pF, pIn, nVars );
|
||||||
assert( Pla2Var[p] == v );
|
assert( Pla2Var[p] == v );
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
// derive binary function
|
// derive binary function
|
||||||
static inline int If_Dec10DeriveCount2( word * pF, word * pRes, int nVars )
|
static inline int If_Dec10DeriveCount2( word * pF, word * pRes, int nVars )
|
||||||
{
|
{
|
||||||
|
|
@ -280,7 +280,7 @@ static inline int If_Dec10DeriveCount2( word * pF, word * pRes, int nVars )
|
||||||
*pRes = ((iCof1 << nShift) | iCof0);
|
*pRes = ((iCof1 << nShift) | iCof0);
|
||||||
return MaskDec;
|
return MaskDec;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
static inline word If_DecTruthStretch( word t, int nVars )
|
static inline word If_DecTruthStretch( word t, int nVars )
|
||||||
{
|
{
|
||||||
assert( nVars > 1 );
|
assert( nVars > 1 );
|
||||||
|
|
|
||||||
|
|
@ -2156,9 +2156,9 @@ float If_CutDelayLutStruct( If_Man_t * p, If_Cut_t * pCut, char * pStr, float Wi
|
||||||
return ABC_INFINITY;
|
return ABC_INFINITY;
|
||||||
|
|
||||||
// compute the delay
|
// compute the delay
|
||||||
Delays[nLeaves] = If_CluDelayMax( &G1, Delays ) + (WireDelay == 0.0)?1.0:WireDelay;
|
Delays[nLeaves] = If_CluDelayMax( &G1, Delays ) + ((WireDelay == 0.0)?1.0:WireDelay);
|
||||||
if ( G2.nVars )
|
if ( G2.nVars )
|
||||||
Delays[nLeaves+1] = If_CluDelayMax( &G2, Delays ) + (WireDelay == 0.0)?1.0:WireDelay;
|
Delays[nLeaves+1] = If_CluDelayMax( &G2, Delays ) + ((WireDelay == 0.0)?1.0:WireDelay);
|
||||||
|
|
||||||
// mark used groups
|
// mark used groups
|
||||||
for ( i = 0; i < G1.nVars; i++ )
|
for ( i = 0; i < G1.nVars; i++ )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue