From 8014f25f6db719fa62336f997963532a14c568f6 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 21 Jan 2012 04:30:10 -0800 Subject: Major restructuring of the code. --- src/aig/dar/darInt.h | 171 --------------------------------------------------- 1 file changed, 171 deletions(-) delete mode 100644 src/aig/dar/darInt.h (limited to 'src/aig/dar/darInt.h') diff --git a/src/aig/dar/darInt.h b/src/aig/dar/darInt.h deleted file mode 100644 index 23e89d3c..00000000 --- a/src/aig/dar/darInt.h +++ /dev/null @@ -1,171 +0,0 @@ -/**CFile**************************************************************** - - FileName [darInt.h] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [DAG-aware AIG rewriting.] - - Synopsis [Internal declarations.] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - April 28, 2007.] - - Revision [$Id: darInt.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#ifndef __DAR_INT_H__ -#define __DAR_INT_H__ - - -//////////////////////////////////////////////////////////////////////// -/// INCLUDES /// -//////////////////////////////////////////////////////////////////////// - -#include -#include -#include -#include -#include - -//#include "bar.h" -#include "vec.h" -#include "aig.h" -#include "dar.h" - -//////////////////////////////////////////////////////////////////////// -/// PARAMETERS /// -//////////////////////////////////////////////////////////////////////// - - - -ABC_NAMESPACE_HEADER_START - - -//////////////////////////////////////////////////////////////////////// -/// BASIC TYPES /// -//////////////////////////////////////////////////////////////////////// - -typedef struct Dar_Man_t_ Dar_Man_t; -typedef struct Dar_Cut_t_ Dar_Cut_t; - -// the AIG 4-cut -struct Dar_Cut_t_ // 6 words -{ - unsigned uSign; // cut signature - unsigned uTruth : 16; // the truth table of the cut function - unsigned Value : 11; // the value of the cut - unsigned fBest : 1; // marks the best cut - unsigned fUsed : 1; // marks the cut currently in use - unsigned nLeaves : 3; // the number of leaves - int pLeaves[4]; // the array of leaves -}; - -// the AIG manager -struct Dar_Man_t_ -{ - // input data - Dar_RwrPar_t * pPars; // rewriting parameters - Aig_Man_t * pAig; // AIG manager - // various data members - Aig_MmFixed_t * pMemCuts; // memory manager for cuts - void * pManCnf; // CNF managers - Vec_Ptr_t * vCutNodes; // the nodes with cuts allocated - // current rewriting step - Vec_Ptr_t * vLeavesBest; // the best set of leaves - int OutBest; // the best output (in the library) - int OutNumBest; // the best number of the output - int GainBest; // the best gain - int LevelBest; // the level of node with the best gain - int ClassBest; // the equivalence class of the best replacement - // function statistics - int nTotalSubgs; // the total number of subgraphs tried - int ClassTimes[222];// the runtimes for each class - int ClassGains[222];// the gains for each class - int ClassSubgs[222];// the graphs for each class - int nCutMemUsed; // memory used for cuts - // rewriting statistics - int nNodesInit; // the original number of nodes - int nNodesTried; // the number of nodes attempted - int nCutsAll; // all cut pairs - int nCutsTried; // computed cuts - int nCutsUsed; // used cuts - int nCutsBad; // bad cuts due to absent fanin - int nCutsGood; // good cuts - int nCutsSkipped; // skipped bad cuts - // timing statistics - int timeCuts; - int timeEval; - int timeOther; - int timeTotal; - int time1; - int time2; -}; - -static inline Dar_Cut_t * Dar_ObjCuts( Aig_Obj_t * pObj ) { return (Dar_Cut_t *)pObj->pData; } -static inline void Dar_ObjSetCuts( Aig_Obj_t * pObj, Dar_Cut_t * pCuts ) { assert( !Aig_ObjIsNone(pObj) ); pObj->pData = pCuts; } - -//////////////////////////////////////////////////////////////////////// -/// MACRO DEFINITIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// ITERATORS /// -//////////////////////////////////////////////////////////////////////// - -// iterator over all cuts of the node -#define Dar_ObjForEachCutAll( pObj, pCut, i ) \ - for ( (pCut) = Dar_ObjCuts(pObj), i = 0; i < (int)(pObj)->nCuts; i++, pCut++ ) -#define Dar_ObjForEachCut( pObj, pCut, i ) \ - for ( (pCut) = Dar_ObjCuts(pObj), i = 0; i < (int)(pObj)->nCuts; i++, pCut++ ) if ( (pCut)->fUsed==0 ) {} else -// iterator over leaves of the cut -#define Dar_CutForEachLeaf( p, pCut, pLeaf, i ) \ - for ( i = 0; (i < (int)(pCut)->nLeaves) && (((pLeaf) = Aig_ManObj(p, (pCut)->pLeaves[i])), 1); i++ ) - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -/*=== darBalance.c ========================================================*/ -/*=== darCore.c ===========================================================*/ -/*=== darCut.c ============================================================*/ -extern void Dar_ManCutsRestart( Dar_Man_t * p, Aig_Obj_t * pRoot ); -extern void Dar_ManCutsFree( Dar_Man_t * p ); -extern Dar_Cut_t * Dar_ObjPrepareCuts( Dar_Man_t * p, Aig_Obj_t * pObj ); -extern Dar_Cut_t * Dar_ObjComputeCuts_rec( Dar_Man_t * p, Aig_Obj_t * pObj ); -extern Dar_Cut_t * Dar_ObjComputeCuts( Dar_Man_t * p, Aig_Obj_t * pObj ); -extern void Dar_ObjCutPrint( Aig_Man_t * p, Aig_Obj_t * pObj ); -/*=== darData.c ===========================================================*/ -extern Vec_Int_t * Dar_LibReadNodes(); -extern Vec_Int_t * Dar_LibReadOuts(); -extern Vec_Int_t * Dar_LibReadPrios(); -/*=== darLib.c ============================================================*/ -extern void Dar_LibStart(); -extern void Dar_LibStop(); -extern void Dar_LibReturnCanonicals( unsigned * pCanons ); -extern void Dar_LibEval( Dar_Man_t * p, Aig_Obj_t * pRoot, Dar_Cut_t * pCut, int Required, int * pnMffcSize ); -extern Aig_Obj_t * Dar_LibBuildBest( Dar_Man_t * p ); -/*=== darMan.c ============================================================*/ -extern Dar_Man_t * Dar_ManStart( Aig_Man_t * pAig, Dar_RwrPar_t * pPars ); -extern void Dar_ManStop( Dar_Man_t * p ); -extern void Dar_ManPrintStats( Dar_Man_t * p ); -/*=== darPrec.c ============================================================*/ -extern char ** Dar_Permutations( int n ); -extern void Dar_Truth4VarNPN( unsigned short ** puCanons, char ** puPhases, char ** puPerms, unsigned char ** puMap ); - - - -ABC_NAMESPACE_HEADER_END - - - -#endif - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - -- cgit v1.2.3