summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-08-04 15:34:34 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-08-04 15:34:34 -0700
commita3a6002b3d663757dd0ca8112c29e51dced7bcfe (patch)
tree55af85db342dcfa739050c82df76133fd07c757b /src
parent1d9d6814ee20412a37fcda79a333d9d7e3fee1d4 (diff)
downloadabc-a3a6002b3d663757dd0ca8112c29e51dced7bcfe.tar.gz
abc-a3a6002b3d663757dd0ca8112c29e51dced7bcfe.tar.bz2
abc-a3a6002b3d663757dd0ca8112c29e51dced7bcfe.zip
Compiler warnings.
Diffstat (limited to 'src')
-rw-r--r--src/aig/gia/giaBalance2.c11
-rw-r--r--src/aig/gia/giaMf.c11
-rw-r--r--src/map/if/ifDelay.c1
-rw-r--r--src/map/if/ifMan.c2
-rw-r--r--src/misc/util/utilTruth.h53
5 files changed, 67 insertions, 11 deletions
diff --git a/src/aig/gia/giaBalance2.c b/src/aig/gia/giaBalance2.c
index 550df2bd..73d2a6fb 100644
--- a/src/aig/gia/giaBalance2.c
+++ b/src/aig/gia/giaBalance2.c
@@ -34,13 +34,14 @@ ABC_NAMESPACE_IMPL_START
#define BAL_CUT_MAX 8
#define BAL_SUPER 50
#define BAL_NO_LEAF 31
+#define BAL_NO_FUNC 134217727 // (1<<27)-1
typedef struct Bal_Cut_t_ Bal_Cut_t;
struct Bal_Cut_t_
{
word Sign; // signature
int Delay; // delay
- unsigned iFunc : 27; // function
+ unsigned iFunc : 27; // function (BAL_NO_FUNC)
unsigned nLeaves : 5; // leaf number (Bal_NO_LEAF)
int pLeaves[BAL_LEAF_MAX]; // leaves
};
@@ -235,7 +236,7 @@ static inline int Bal_CutMergeOrder( Bal_Cut_t * pCut0, Bal_Cut_t * pCut1, Bal_C
pC[i] = pC0[i];
}
pCut->nLeaves = nLutSize;
- pCut->iFunc = -1;
+ pCut->iFunc = BAL_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
pCut->Delay = Abc_MaxInt( pCut0->Delay, pCut1->Delay );
return 1;
@@ -268,7 +269,7 @@ FlushCut0:
while ( i < nSize0 )
pC[c++] = pC0[i++];
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = BAL_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
pCut->Delay = Abc_MaxInt( pCut0->Delay, pCut1->Delay );
return 1;
@@ -278,7 +279,7 @@ FlushCut1:
while ( k < nSize1 )
pC[c++] = pC1[k++];
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = BAL_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
pCut->Delay = Abc_MaxInt( pCut0->Delay, pCut1->Delay );
return 1;
@@ -303,7 +304,7 @@ static inline int Bal_CutMergeOrderMux( Bal_Cut_t * pCut0, Bal_Cut_t * pCut1, Ba
if (x2 == xMin) i2++;
}
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = BAL_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign | pCut2->Sign;
pCut->Delay = Abc_MaxInt( pCut0->Delay, Abc_MaxInt(pCut1->Delay, pCut2->Delay) );
return 1;
diff --git a/src/aig/gia/giaMf.c b/src/aig/gia/giaMf.c
index da571904..331612a2 100644
--- a/src/aig/gia/giaMf.c
+++ b/src/aig/gia/giaMf.c
@@ -35,6 +35,7 @@ ABC_NAMESPACE_IMPL_START
#define MF_LOG_PAGE 12
#define MF_NO_LEAF 31
#define MF_TT_WORDS ((MF_LEAF_MAX > 6) ? 1 << (MF_LEAF_MAX-6) : 1)
+#define MF_NO_FUNC 134217727 // (1<<27)-1
typedef struct Mf_Cut_t_ Mf_Cut_t;
struct Mf_Cut_t_
@@ -42,7 +43,7 @@ struct Mf_Cut_t_
word Sign; // signature
int Delay; // delay
float Flow; // flow
- unsigned iFunc : 27; // function
+ unsigned iFunc : 27; // function (MF_NO_FUNC)
unsigned nLeaves : 5; // leaf number (MF_NO_LEAF)
int pLeaves[MF_LEAF_MAX+1]; // leaves
};
@@ -785,7 +786,7 @@ static inline int Mf_CutMergeOrder( Mf_Cut_t * pCut0, Mf_Cut_t * pCut1, Mf_Cut_t
pC[i] = pC0[i];
}
pCut->nLeaves = nLutSize;
- pCut->iFunc = -1;
+ pCut->iFunc = MF_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
return 1;
}
@@ -819,7 +820,7 @@ FlushCut0:
while ( i < nSize0 )
pC[c++] = pC0[i++];
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = MF_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
return 1;
@@ -828,7 +829,7 @@ FlushCut1:
while ( k < nSize1 )
pC[c++] = pC1[k++];
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = MF_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign;
return 1;
}
@@ -852,7 +853,7 @@ static inline int Mf_CutMergeOrderMux( Mf_Cut_t * pCut0, Mf_Cut_t * pCut1, Mf_Cu
if (x2 == xMin) i2++;
}
pCut->nLeaves = c;
- pCut->iFunc = -1;
+ pCut->iFunc = MF_NO_FUNC;
pCut->Sign = pCut0->Sign | pCut1->Sign | pCut2->Sign;
return 1;
}
diff --git a/src/map/if/ifDelay.c b/src/map/if/ifDelay.c
index bf143ce5..da4801b4 100644
--- a/src/map/if/ifDelay.c
+++ b/src/map/if/ifDelay.c
@@ -20,6 +20,7 @@
#include "if.h"
#include "ifCount.h"
+#include "bool/kit/kit.h"
ABC_NAMESPACE_IMPL_START
diff --git a/src/map/if/ifMan.c b/src/map/if/ifMan.c
index 26989420..43f7b7e0 100644
--- a/src/map/if/ifMan.c
+++ b/src/map/if/ifMan.c
@@ -79,7 +79,7 @@ If_Man_t * If_ManStart( If_Par_t * pPars )
for ( v = 0; v < 6; v++ )
p->vTtIsops[v] = p->vTtIsops[6];
}
- if ( p->pPars->fDelayOpt || pPars->nGateSize > 0 || p->pPars->fDsdBalance );
+ if ( pPars->fDelayOpt || pPars->nGateSize > 0 || pPars->fDsdBalance )
{
p->vCover = Vec_IntAlloc( 0 );
p->vArray = Vec_IntAlloc( 1000 );
diff --git a/src/misc/util/utilTruth.h b/src/misc/util/utilTruth.h
index a45f62ea..ee1784fb 100644
--- a/src/misc/util/utilTruth.h
+++ b/src/misc/util/utilTruth.h
@@ -53,6 +53,15 @@ static word s_Truths6Neg[6] = {
ABC_CONST(0x00000000FFFFFFFF)
};
+static word s_TruthXors[6] = {
+ ABC_CONST(0x0000000000000000),
+ ABC_CONST(0x6666666666666666),
+ ABC_CONST(0x6969696969696969),
+ ABC_CONST(0x6996699669966996),
+ ABC_CONST(0x6996966969969669),
+ ABC_CONST(0x6996966996696996)
+};
+
static word s_PMasks[5][3] = {
{ ABC_CONST(0x9999999999999999), ABC_CONST(0x2222222222222222), ABC_CONST(0x4444444444444444) },
{ ABC_CONST(0xC3C3C3C3C3C3C3C3), ABC_CONST(0x0C0C0C0C0C0C0C0C), ABC_CONST(0x3030303030303030) },
@@ -163,6 +172,19 @@ static inline int Abc_TtHexDigitNum( int nVars ) { return nVars <= 2 ? 1 : 1 <<
/**Function*************************************************************
+ Synopsis [Bit mask.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+static inline word Abc_Tt6Mask( int nBits ) { assert( nBits >= 0 && nBits <= 64 ); return (~(word)0) >> (64-nBits); }
+
+/**Function*************************************************************
+
Synopsis []
Description []
@@ -949,6 +971,37 @@ static inline int Abc_Tt6SupportAndSize( word t, int nVars, int * pSuppSize )
/**Function*************************************************************
+ Synopsis [Detecting elementary functions.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+static inline int Abc_TtOnlyOneOne( word t )
+{
+ if ( t == 0 )
+ return 0;
+ return (t & (t-1)) == 0;
+}
+static inline int Gia_ManTtIsAndType( word t, int nVars )
+{
+ return Abc_TtOnlyOneOne( t & Abc_Tt6Mask(1 << nVars) );
+}
+static inline int Gia_ManTtIsOrType( word t, int nVars )
+{
+ return Abc_TtOnlyOneOne( ~t & Abc_Tt6Mask(1 << nVars) );
+}
+static inline int Gia_ManTtIsXorType( word t, int nVars )
+{
+ return ((((t & 1) ? ~t : t) ^ s_TruthXors[nVars]) & Abc_Tt6Mask(1 << nVars)) == 0;
+}
+
+
+/**Function*************************************************************
+
Synopsis []
Description []