From a78fb767ee8691154ac17908f6099f29526193f2 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 17 Apr 2015 21:02:15 +0900 Subject: Adding platform-independent (alphabetic) way of sorting Genlib gates and selecting representatives based on area/delay. --- src/map/mio/mioRead.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'src/map/mio/mioRead.c') diff --git a/src/map/mio/mioRead.c b/src/map/mio/mioRead.c index edc2af40..6e067fa7 100644 --- a/src/map/mio/mioRead.c +++ b/src/map/mio/mioRead.c @@ -533,9 +533,9 @@ int Mio_LibraryCompareGatesByArea( Mio_Gate_t ** pp1, Mio_Gate_t ** pp2 ) int Mio_LibraryCompareGatesByName( Mio_Gate_t ** pp1, Mio_Gate_t ** pp2 ) { int Diff = strcmp( (*pp1)->pName, (*pp2)->pName ); - if ( Diff < 0.0 ) + if ( Diff < 0 ) return -1; - if ( Diff > 0.0 ) + if ( Diff > 0 ) return 1; return 0; } @@ -559,22 +559,16 @@ void Mio_LibrarySortGates( Mio_Library_t * pLib ) Mio_LibraryForEachGate( pLib, pGate ) ppGates[i++] = pGate; assert( i == pLib->nGates ); - // sort gates by area + // sort gates by name pLib->ppGates0 = ABC_ALLOC( Mio_Gate_t *, pLib->nGates ); for ( i = 0; i < pLib->nGates; i++ ) pLib->ppGates0[i] = ppGates[i]; qsort( (void *)ppGates, pLib->nGates, sizeof(void *), - (int (*)(const void *, const void *)) Mio_LibraryCompareGatesByArea ); + (int (*)(const void *, const void *)) Mio_LibraryCompareGatesByName ); for ( i = 0; i < pLib->nGates; i++ ) ppGates[i]->pNext = (i < pLib->nGates-1)? ppGates[i+1] : NULL; pLib->pGates = ppGates[0]; - ABC_FREE( ppGates ); - // sort gates by name - pLib->ppGatesName = ABC_ALLOC( Mio_Gate_t *, pLib->nGates ); - for ( i = 0; i < pLib->nGates; i++ ) - pLib->ppGatesName[i] = pLib->ppGates0[i]; - qsort( (void *)pLib->ppGatesName, pLib->nGates, sizeof(void *), - (int (*)(const void *, const void *)) Mio_LibraryCompareGatesByName ); + pLib->ppGatesName = ppGates; } /**Function************************************************************* -- cgit v1.2.3