summaryrefslogtreecommitdiffstats
path: root/src/map/if/if.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-04-03 00:39:48 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-04-03 00:39:48 -0700
commitffea3a2c849bc774396f3c8c191c12fb16b744d1 (patch)
treef417a97c21ceba23e37f41aaf6884f40a365a631 /src/map/if/if.h
parent9291ab9f50a38717827a30f90418b3ecfa5110df (diff)
downloadabc-ffea3a2c849bc774396f3c8c191c12fb16b744d1.tar.gz
abc-ffea3a2c849bc774396f3c8c191c12fb16b744d1.tar.bz2
abc-ffea3a2c849bc774396f3c8c191c12fb16b744d1.zip
Improvements to technology mapping.
Diffstat (limited to 'src/map/if/if.h')
-rw-r--r--src/map/if/if.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/map/if/if.h b/src/map/if/if.h
index 9471d3c0..c01fbc9b 100644
--- a/src/map/if/if.h
+++ b/src/map/if/if.h
@@ -233,11 +233,13 @@ struct If_Man_t_
int nCutsCountAll;
int nCutsUselessAll;
int nCuts5, nCuts5a;
- If_DsdMan_t * pIfDsdMan;
Vec_Mem_t * vTtMem[IF_MAX_FUNC_LUTSIZE+1]; // truth table memory and hash table
+ If_DsdMan_t * pIfDsdMan; // DSD manager
Vec_Int_t * vTtDsds; // mapping of truth table into DSD
Vec_Str_t * vTtPerms; // mapping of truth table into permutations
Hash_IntMan_t * vPairHash; // hashing pairs of truth tables
+ Vec_Int_t * vPairRes; // resulting truth table
+ Vec_Str_t * vPairPerms; // resulting permutation
int nBestCutSmall[2];
int nCountNonDec[2];
Vec_Int_t * vCutData; // cut data storage
@@ -389,6 +391,7 @@ static inline int * If_CutLeaves( If_Cut_t * pCut ) { r
static inline unsigned If_CutSuppMask( If_Cut_t * pCut ) { return (~(unsigned)0) >> (32-pCut->nLeaves); }
static inline int If_CutTruthWords( int nVarsMax ) { return nVarsMax <= 5 ? 2 : (1 << (nVarsMax - 5)); }
static inline int If_CutPermWords( int nVarsMax ) { return nVarsMax / sizeof(int) + ((nVarsMax % sizeof(int)) > 0); }
+static inline int If_CutLeafBit( If_Cut_t * pCut, int i ) { return (pCut->iCutDsd >> i) & 1; }
static inline If_Cut_t * If_ObjCutBest( If_Obj_t * pObj ) { return &pObj->CutBest; }
static inline unsigned If_ObjCutSign( unsigned ObjId ) { return (1 << (ObjId % 31)); }