Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
abc
Commits
868a1b9a
Commit
868a1b9a
authored
Oct 31, 2011
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed the overflow timeout problem in bmc/bmc2/bmc3/int/pdr/sim, etc.
parent
f08be274
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
78 additions
and
62 deletions
+78
-62
src/aig/gia/giaSim.c
+2
-1
src/aig/gia/giaSim2.c
+2
-1
src/aig/int/intCore.c
+3
-7
src/aig/llb/llb1Reach.c
+2
-5
src/aig/llb/llb2Core.c
+4
-7
src/aig/llb/llb3Nonlin.c
+3
-5
src/aig/llb/llb4Nonlin.c
+3
-5
src/aig/saig/saigAbsPba.c
+2
-1
src/aig/saig/saigBmc2.c
+6
-5
src/aig/saig/saigBmc3.c
+4
-3
src/aig/saig/saigGlaCba.c
+3
-2
src/aig/saig/saigGlaPba.c
+20
-2
src/aig/ssw/sswFilter.c
+3
-2
src/aig/ssw/sswRarity.c
+4
-2
src/aig/ssw/sswRarity2.c
+4
-2
src/bdd/cudd/cuddAndAbs.c
+1
-1
src/bdd/cudd/cuddBddIte.c
+1
-1
src/bdd/cudd/cuddBridge.c
+2
-2
src/bdd/cudd/cuddCompose.c
+1
-1
src/bdd/cudd/cuddSymmetry.c
+1
-1
src/sat/bsat/satSolver.c
+4
-3
src/sat/pdr/pdrCore.c
+3
-3
No files found.
src/aig/gia/giaSim.c
View file @
868a1b9a
...
...
@@ -611,6 +611,7 @@ int Gia_ManSimSimulate( Gia_Man_t * pAig, Gia_ParSim_t * pPars )
Gia_ManSim_t
*
p
;
int
i
,
clkTotal
=
clock
();
int
iOut
,
iPat
,
RetValue
=
0
;
int
nTimeToStop
=
pPars
->
TimeLimit
?
pPars
->
TimeLimit
+
time
(
NULL
)
:
0
;
if
(
pAig
->
pReprs
&&
pAig
->
pNexts
)
return
Gia_ManSimSimulateEquiv
(
pAig
,
pPars
);
ABC_FREE
(
pAig
->
pCexSeq
);
...
...
@@ -647,7 +648,7 @@ int Gia_ManSimSimulate( Gia_Man_t * pAig, Gia_ParSim_t * pPars )
RetValue
=
1
;
break
;
}
if
(
(
clock
()
-
clkTotal
)
/
CLOCKS_PER_SEC
>=
pPars
->
TimeLimit
)
if
(
time
(
NULL
)
>
pPars
->
TimeLimit
)
{
i
++
;
break
;
...
...
src/aig/gia/giaSim2.c
View file @
868a1b9a
...
...
@@ -641,6 +641,7 @@ int Gia_ManSimSimulateEquiv( Gia_Man_t * pAig, Gia_ParSim_t * pPars )
Gia_Obj_t
*
pObj
;
int
i
,
clkTotal
=
clock
();
int
RetValue
=
0
,
iOut
,
iPat
;
int
nTimeToStop
=
pPars
->
TimeLimit
?
pPars
->
TimeLimit
+
time
(
NULL
)
:
0
;
assert
(
pAig
->
pReprs
&&
pAig
->
pNexts
);
ABC_FREE
(
pAig
->
pCexSeq
);
p
=
Gia_Sim2Create
(
pAig
,
pPars
);
...
...
@@ -681,7 +682,7 @@ int Gia_ManSimSimulateEquiv( Gia_Man_t * pAig, Gia_ParSim_t * pPars )
}
if
(
pAig
->
pReprs
&&
pAig
->
pNexts
)
Gia_Sim2InfoRefineEquivs
(
p
);
if
(
(
clock
()
-
clkTotal
)
/
CLOCKS_PER_SEC
>=
pPars
->
TimeLimit
)
if
(
time
(
NULL
)
>
nTimeToStop
)
{
i
++
;
break
;
...
...
src/aig/int/intCore.c
View file @
868a1b9a
...
...
@@ -81,11 +81,7 @@ int Inter_ManPerformInterpolation( Aig_Man_t * pAig, Inter_ManParams_t * pPars,
Inter_Check_t
*
pCheck
=
NULL
;
Aig_Man_t
*
pAigTemp
;
int
s
,
i
,
RetValue
,
Status
,
clk
,
clk2
,
clkTotal
=
clock
(),
timeTemp
;
int
nTimeNewOut
=
0
;
// set runtime limit
if
(
pPars
->
nSecLimit
)
nTimeNewOut
=
clock
()
+
pPars
->
nSecLimit
*
CLOCKS_PER_SEC
;
int
nTimeNewOut
=
pPars
->
nSecLimit
?
time
(
NULL
)
+
pPars
->
nSecLimit
:
0
;
// sanity checks
assert
(
Saig_ManRegNum
(
pAig
)
>
0
);
...
...
@@ -252,7 +248,7 @@ p->timeCnf += clock() - clk;
}
else
if
(
RetValue
==
-
1
)
{
if
(
pPars
->
nSecLimit
&&
clock
(
)
>
nTimeNewOut
)
// timed out
if
(
pPars
->
nSecLimit
&&
time
(
NULL
)
>
nTimeNewOut
)
// timed out
{
if
(
pPars
->
fVerbose
)
printf
(
"Reached timeout (%d seconds).
\n
"
,
pPars
->
nSecLimit
);
...
...
@@ -331,7 +327,7 @@ p->timeEqu += clock() - clk - timeTemp;
Inter_CheckStop
(
pCheck
);
return
1
;
}
if
(
pPars
->
nSecLimit
&&
clock
(
)
>
nTimeNewOut
)
if
(
pPars
->
nSecLimit
&&
time
(
NULL
)
>
nTimeNewOut
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
pPars
->
nSecLimit
);
p
->
timeTotal
=
clock
()
-
clkTotal
;
...
...
src/aig/llb/llb1Reach.c
View file @
868a1b9a
...
...
@@ -586,10 +586,7 @@ int Llb_ManReachability( Llb_Man_t * p, Vec_Int_t * vHints, DdManager ** pddGlo
int
nThreshold
=
10000
;
// compute time to stop
if
(
p
->
pPars
->
TimeLimit
)
p
->
pPars
->
TimeTarget
=
clock
()
+
p
->
pPars
->
TimeLimit
*
CLOCKS_PER_SEC
;
else
p
->
pPars
->
TimeTarget
=
0
;
p
->
pPars
->
TimeTarget
=
p
->
pPars
->
TimeLimit
?
time
(
NULL
)
+
p
->
pPars
->
TimeLimit
:
0
;
// define variable limits
Llb_ManPrepareVarLimits
(
p
);
...
...
@@ -660,7 +657,7 @@ int Llb_ManReachability( Llb_Man_t * p, Vec_Int_t * vHints, DdManager ** pddGlo
{
clk2
=
clock
();
// check the runtime limit
if
(
p
->
pPars
->
TimeLimit
&&
clock
()
>=
p
->
pPars
->
TimeTarget
)
if
(
p
->
pPars
->
TimeLimit
&&
time
(
NULL
)
>
p
->
pPars
->
TimeTarget
)
{
if
(
!
p
->
pPars
->
fSilent
)
printf
(
"Reached timeout during image computation (%d seconds).
\n
"
,
p
->
pPars
->
TimeLimit
);
...
...
src/aig/llb/llb2Core.c
View file @
868a1b9a
...
...
@@ -218,7 +218,7 @@ int Llb_CoreReachability_int( Llb_Img_t * p, Vec_Ptr_t * vQuant0, Vec_Ptr_t * vQ
p->pPars->TimeTarget = 0;
*/
if
(
p
->
pPars
->
TimeLimit
&&
clock
()
>=
p
->
pPars
->
TimeTarget
)
if
(
time
(
NULL
)
>
p
->
pPars
->
TimeTarget
)
{
if
(
!
p
->
pPars
->
fSilent
)
printf
(
"Reached timeout (%d seconds) before image computation.
\n
"
,
p
->
pPars
->
TimeLimit
);
...
...
@@ -286,7 +286,7 @@ int Llb_CoreReachability_int( Llb_Img_t * p, Vec_Ptr_t * vQuant0, Vec_Ptr_t * vQ
{
clk2
=
clock
();
// check the runtime limit
if
(
p
->
pPars
->
TimeLimit
&&
clock
()
>=
p
->
pPars
->
TimeTarget
)
if
(
p
->
pPars
->
TimeLimit
&&
time
(
NULL
)
>
p
->
pPars
->
TimeTarget
)
{
if
(
!
p
->
pPars
->
fSilent
)
printf
(
"Reached timeout (%d seconds) during image computation.
\n
"
,
p
->
pPars
->
TimeLimit
);
...
...
@@ -729,10 +729,7 @@ int Llb_ManReachMinCut( Aig_Man_t * pAig, Gia_ParLlb_t * pPars )
int
clk
=
clock
();
// compute time to stop
if
(
pPars
->
TimeLimit
)
pPars
->
TimeTarget
=
clock
()
+
pPars
->
TimeLimit
*
CLOCKS_PER_SEC
;
else
pPars
->
TimeTarget
=
0
;
pPars
->
TimeTarget
=
pPars
->
TimeLimit
?
time
(
NULL
)
+
pPars
->
TimeLimit
:
0
;
p
=
Aig_ManDupFlopsOnly
(
pAig
);
//Aig_ManShow( p, 0, NULL );
...
...
@@ -744,7 +741,7 @@ int Llb_ManReachMinCut( Aig_Man_t * pAig, Gia_ParLlb_t * pPars )
vResult
=
Llb_ManComputeCuts
(
p
,
pPars
->
nPartValue
,
pPars
->
fVerbose
,
pPars
->
fVeryVerbose
);
if
(
pPars
->
TimeLimit
&&
clock
()
>=
pPars
->
TimeTarget
)
if
(
pPars
->
TimeLimit
&&
time
(
NULL
)
>
pPars
->
TimeTarget
)
{
if
(
!
pPars
->
fSilent
)
printf
(
"Reached timeout (%d seconds) after partitioning.
\n
"
,
pPars
->
TimeLimit
);
...
...
src/aig/llb/llb3Nonlin.c
View file @
868a1b9a
...
...
@@ -433,10 +433,8 @@ int Llb_NonlinReachability( Llb_Mnn_t * p )
assert
(
Aig_ManRegNum
(
p
->
pAig
)
>
0
);
// compute time to stop
if
(
p
->
pPars
->
TimeLimit
)
p
->
pPars
->
TimeTarget
=
clock
()
+
p
->
pPars
->
TimeLimit
*
CLOCKS_PER_SEC
;
else
p
->
pPars
->
TimeTarget
=
0
;
p
->
pPars
->
TimeTarget
=
p
->
pPars
->
TimeLimit
?
time
(
NULL
)
+
p
->
pPars
->
TimeLimit
:
0
;
// set the stop time parameter
p
->
dd
->
TimeStop
=
p
->
pPars
->
TimeTarget
;
p
->
ddG
->
TimeStop
=
p
->
pPars
->
TimeTarget
;
...
...
@@ -474,7 +472,7 @@ int Llb_NonlinReachability( Llb_Mnn_t * p )
{
// check the runtime limit
clk2
=
clock
();
if
(
p
->
pPars
->
TimeLimit
&&
clock
()
>=
p
->
pPars
->
TimeTarget
)
if
(
p
->
pPars
->
TimeLimit
&&
time
(
NULL
)
>
p
->
pPars
->
TimeTarget
)
{
if
(
!
p
->
pPars
->
fSilent
)
printf
(
"Reached timeout (%d seconds) during image computation.
\n
"
,
p
->
pPars
->
TimeLimit
);
...
...
src/aig/llb/llb4Nonlin.c
View file @
868a1b9a
...
...
@@ -725,7 +725,7 @@ int Llb_Nonlin4Reachability( Llb_Mnx_t * p )
{
clkIter
=
clock
();
// check the runtime limit
if
(
p
->
pPars
->
TimeLimit
&&
clock
()
>=
p
->
pPars
->
TimeTarget
)
if
(
p
->
pPars
->
TimeLimit
&&
time
(
NULL
)
>
p
->
pPars
->
TimeTarget
)
{
if
(
!
p
->
pPars
->
fSilent
)
printf
(
"Reached timeout (%d seconds) during image computation.
\n
"
,
p
->
pPars
->
TimeLimit
);
...
...
@@ -929,10 +929,8 @@ Llb_Mnx_t * Llb_MnxStart( Aig_Man_t * pAig, Gia_ParLlb_t * pPars )
p
->
pPars
=
pPars
;
// compute time to stop
if
(
p
->
pPars
->
TimeLimit
)
p
->
pPars
->
TimeTarget
=
clock
()
+
p
->
pPars
->
TimeLimit
*
CLOCKS_PER_SEC
;
else
p
->
pPars
->
TimeTarget
=
0
;
p
->
pPars
->
TimeTarget
=
p
->
pPars
->
TimeLimit
?
time
(
NULL
)
+
p
->
pPars
->
TimeLimit
:
0
;
if
(
pPars
->
fCluster
)
{
// Llb_Nonlin4Cluster( p->pAig, &p->dd, &p->vOrder, &p->vRoots, pPars->nBddMax, pPars->fVerbose );
...
...
src/aig/saig/saigAbsPba.c
View file @
868a1b9a
...
...
@@ -254,6 +254,7 @@ Vec_Int_t * Saig_ManPbaDerive( Aig_Man_t * pAig, int nInputs, int nStart, int nF
sat_solver
*
pSat
;
Cnf_Dat_t
*
pCnf
;
Aig_Obj_t
*
pObj
;
int
nTimeToStop
=
time
(
NULL
)
+
TimeLimit
;
int
nCoreLits
,
*
pCoreLits
;
int
i
,
iVar
,
RetValue
,
clk
;
if
(
fVerbose
)
...
...
@@ -295,7 +296,7 @@ Abc_PrintTime( 1, "Preparing", clock() - clk );
// set runtime limit
if
(
TimeLimit
)
sat_solver_set_runtime_limit
(
pSat
,
clock
()
+
TimeLimit
*
CLOCKS_PER_SEC
);
sat_solver_set_runtime_limit
(
pSat
,
nTimeToStop
);
// run SAT solver
clk
=
clock
();
...
...
src/aig/saig/saigBmc2.c
View file @
868a1b9a
...
...
@@ -750,6 +750,7 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
Saig_Bmc_t
*
p
;
Aig_Man_t
*
pNew
;
Cnf_Dat_t
*
pCnf
;
int
nTimeToStop
=
time
(
NULL
)
+
nTimeOut
;
int
nOutsSolved
=
0
;
int
Iter
,
RetValue
=
-
1
,
clk
=
clock
(),
clk2
,
clkTotal
=
clock
();
int
Status
=
-
1
;
...
...
@@ -769,7 +770,7 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
}
// set runtime limit
if
(
nTimeOut
)
sat_solver_set_runtime_limit
(
p
->
pSat
,
clock
()
+
nTimeOut
*
CLOCKS_PER_SEC
);
sat_solver_set_runtime_limit
(
p
->
pSat
,
nTimeToStop
);
for
(
Iter
=
0
;
;
Iter
++
)
{
clk2
=
clock
();
...
...
@@ -800,7 +801,7 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
if
(
RetValue
!=
l_False
)
break
;
// check the timeout
if
(
nTimeOut
&&
((
float
)
nTimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
nTimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
nTimeOut
);
if
(
piFrames
)
...
...
@@ -843,10 +844,10 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
printf
(
"Reached limit on the number of timeframes (%d).
\n
"
,
p
->
nFramesMax
);
else
if
(
p
->
nConfMaxAll
&&
p
->
pSat
->
stats
.
conflicts
>
p
->
nConfMaxAll
)
printf
(
"Reached global conflict limit (%d).
\n
"
,
p
->
nConfMaxAll
);
else
if
(
nTimeOut
==
0
||
nTimeOut
>
clock
()
)
printf
(
"Reached
local conflict limit (%d).
\n
"
,
p
->
nConfMaxOne
);
else
if
(
nTimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
printf
(
"Reached
timeout (%d seconds).
\n
"
,
nTimeOut
);
else
printf
(
"Reached
timeout (%d sec).
\n
"
,
nTimeOut
);
printf
(
"Reached
local conflict limit (%d).
\n
"
,
p
->
nConfMaxOne
);
}
Saig_BmcManStop
(
p
);
return
Status
;
...
...
src/aig/saig/saigBmc3.c
View file @
868a1b9a
...
...
@@ -1102,6 +1102,7 @@ int Saig_ManBmcScalable( Aig_Man_t * pAig, Saig_ParBmc_t * pPars )
int
RetValue
=
-
1
,
fFirst
=
1
,
nJumpFrame
=
0
,
fUnfinished
=
0
;
int
nOutDigits
=
Aig_Base10Log
(
Saig_ManPoNum
(
pAig
)
-
Saig_ManConstrNum
(
pAig
)
);
int
i
,
f
,
Lit
,
status
,
clk
,
clk2
,
clkOther
=
0
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
pPars
->
nTimeOut
;
if
(
pPars
->
fVerbose
&&
Aig_ManConstrNum
(
pAig
)
>
0
)
printf
(
"Performing BMC with constraints...
\n
"
);
p
=
Saig_Bmc3ManStart
(
pAig
);
...
...
@@ -1116,7 +1117,7 @@ int Saig_ManBmcScalable( Aig_Man_t * pAig, Saig_ParBmc_t * pPars )
}
// set runtime limit
if
(
p
->
pPars
->
nTimeOut
)
sat_solver_set_runtime_limit
(
p
->
pSat
,
clock
()
+
p
->
pPars
->
nTimeOut
*
CLOCKS_PER_SEC
);
sat_solver_set_runtime_limit
(
p
->
pSat
,
nTimeToStop
);
// perform frames
Aig_ManRandom
(
1
);
Saig_ManBmcMarkPis
(
pAig
,
pPars
->
nPisAbstract
);
...
...
@@ -1264,7 +1265,7 @@ clkOther += clock() - clk2;
else
{
assert
(
status
==
l_Undef
);
if
(
pPars
->
nTimeOut
&&
((
float
)
pPars
->
nTimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
pPars
->
nTimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
pPars
->
nTimeOut
);
Saig_Bmc3ManStop
(
p
);
...
...
@@ -1280,7 +1281,7 @@ clkOther += clock() - clk2;
Saig_Bmc3ManStop
(
p
);
return
RetValue
;
}
if
(
pPars
->
nTimeOut
&&
((
float
)
pPars
->
nTimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
pPars
->
nTimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
pPars
->
nTimeOut
);
Saig_Bmc3ManStop
(
p
);
...
...
src/aig/saig/saigGlaCba.c
View file @
868a1b9a
...
...
@@ -686,6 +686,7 @@ Vec_Int_t * Aig_Gla1ManTest( Aig_Man_t * pAig, Vec_Int_t * vGateClassesOld, int
Vec_Int_t
*
vPPiRefine
;
int
f
,
g
,
r
,
i
,
iSatVar
,
Lit
,
Entry
,
RetValue
;
int
nConfBef
,
nConfAft
,
clk
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeLimit
;
assert
(
Saig_ManPoNum
(
pAig
)
==
1
);
if
(
nFramesMax
==
0
)
...
...
@@ -711,7 +712,7 @@ Vec_Int_t * Aig_Gla1ManTest( Aig_Man_t * pAig, Vec_Int_t * vGateClassesOld, int
// set runtime limit
if
(
TimeLimit
)
sat_solver_set_runtime_limit
(
p
->
pSat
,
clock
()
+
TimeLimit
*
CLOCKS_PER_SEC
);
sat_solver_set_runtime_limit
(
p
->
pSat
,
nTimeToStop
);
// iterate over the timeframes
for
(
f
=
0
;
f
<
nFramesMax
;
f
++
)
...
...
@@ -750,7 +751,7 @@ Vec_Int_t * Aig_Gla1ManTest( Aig_Man_t * pAig, Vec_Int_t * vGateClassesOld, int
printf
(
"== %3d =="
,
f
);
else
printf
(
" "
);
if
(
TimeLimit
&&
clock
()
>
clkTotal
+
TimeLimit
*
CLOCKS_PER_SEC
)
if
(
TimeLimit
&&
time
(
NULL
)
>
nTimeToStop
)
printf
(
" SAT solver timed out after %d seconds.
\n
"
,
TimeLimit
);
else
if
(
RetValue
!=
l_False
)
printf
(
" SAT solver returned UNDECIDED after %5d conflicts.
\n
"
,
nConfAft
-
nConfBef
);
...
...
src/aig/saig/saigGlaPba.c
View file @
868a1b9a
...
...
@@ -465,13 +465,30 @@ Vec_Int_t * Aig_Gla2ManCollect( Aig_Gla2Man_t * p, Vec_Int_t * vCore )
continue
;
assert
(
Saig_ObjIsLo
(
p
->
pAig
,
pObj
)
||
Aig_ObjIsNode
(
pObj
)
);
Vec_IntWriteEntry
(
vResult
,
Aig_ObjId
(
pObj
),
1
);
/*
// add flop inputs with multiple fanouts
if ( Saig_ObjIsLo(p->pAig, pObj) )
{
Aig_Obj_t * pObjLi = Saig_ObjLoToLi(p->pAig, pObj);
if ( !Saig_ObjIsPi(p->pAig, Aig_ObjFanin0(pObjLi)) )
// if ( Aig_ObjRefs( Aig_ObjFanin0(pObjLi) ) > 1 )
Vec_IntWriteEntry( vResult, Aig_ObjFaninId0(pObjLi), 1 );
}
else
{
if ( !Saig_ObjIsPi(p->pAig, Aig_ObjFanin0(pObj)) )
Vec_IntWriteEntry( vResult, Aig_ObjFaninId0(pObj), 1 );
if ( !Saig_ObjIsPi(p->pAig, Aig_ObjFanin1(pObj)) )
Vec_IntWriteEntry( vResult, Aig_ObjFaninId1(pObj), 1 );
}
*/
if
(
p
->
vVec2Use
)
{
iVecId
=
Vec_IntEntry
(
p
->
vObj2Vec
,
Aig_ObjId
(
pObj
)
);
Vec_IntWriteEntry
(
p
->
vVec2Use
,
iVecId
*
p
->
nFramesMax
+
Vec_IntEntry
(
p
->
vCla2Fra
,
ClaId
),
1
);
}
}
// printf( "Number of entries %d\n", Vec_IntCountPositive(vResult) );
// count the number of objects in each frame
if
(
p
->
vVec2Use
)
...
...
@@ -508,6 +525,7 @@ Vec_Int_t * Aig_Gla2ManTest( Aig_Man_t * pAig, int nStart, int nFramesMax, int n
Aig_Gla2Man_t
*
p
;
Vec_Int_t
*
vCore
,
*
vResult
;
int
clk
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeLimit
;
assert
(
Saig_ManPoNum
(
pAig
)
==
1
);
if
(
fVerbose
)
...
...
@@ -531,7 +549,7 @@ Vec_Int_t * Aig_Gla2ManTest( Aig_Man_t * pAig, int nStart, int nFramesMax, int n
// set runtime limit
if
(
TimeLimit
)
sat_solver_set_runtime_limit
(
p
->
pSat
,
clock
()
+
TimeLimit
*
CLOCKS_PER_SEC
);
sat_solver_set_runtime_limit
(
p
->
pSat
,
nTimeToStop
);
// compute UNSAT core
clk
=
clock
();
...
...
src/aig/ssw/sswFilter.c
View file @
868a1b9a
...
...
@@ -383,6 +383,7 @@ void Ssw_SignalFilter( Aig_Man_t * pAig, int nFramesMax, int nConfMax, int nRoun
Ssw_Pars_t
Pars
,
*
pPars
=
&
Pars
;
Ssw_Man_t
*
p
;
int
r
,
TimeLimitPart
,
clkTotal
=
clock
();
int
nTimeToStop
=
TimeLimit
?
TimeLimit
+
time
(
NULL
)
:
0
;
assert
(
Aig_ManRegNum
(
pAig
)
>
0
);
assert
(
Aig_ManConstrNum
(
pAig
)
==
0
);
// consider the case of empty AIG
...
...
@@ -428,7 +429,7 @@ void Ssw_SignalFilter( Aig_Man_t * pAig, int nFramesMax, int nConfMax, int nRoun
Ssw_ClassesPrint
(
p
->
ppClasses
,
0
);
}
p
->
pMSat
=
Ssw_SatStart
(
0
);
TimeLimitPart
=
TimeLimit
?
TimeLimit
-
(
int
)((
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
)
)
:
0
;
TimeLimitPart
=
TimeLimit
?
nTimeToStop
-
time
(
NULL
)
:
0
;
if
(
TimeLimit2
)
{
if
(
TimeLimitPart
)
...
...
@@ -443,7 +444,7 @@ void Ssw_SignalFilter( Aig_Man_t * pAig, int nFramesMax, int nConfMax, int nRoun
// simulate pattern forward
Ssw_ManRollForward
(
p
,
p
->
pPars
->
nFramesK
);
// check timeout
if
(
TimeLimit
&&
((
float
)
TimeLimit
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
TimeLimit
&&
time
(
NULL
)
>
nTimeToStop
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeLimit
);
break
;
...
...
src/aig/ssw/sswRarity.c
View file @
868a1b9a
...
...
@@ -895,6 +895,7 @@ int Ssw_RarSimulate( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, in
int
fMiter
=
1
;
Ssw_RarMan_t
*
p
;
int
r
,
f
,
clk
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeOut
;
int
RetValue
=
-
1
;
assert
(
Aig_ManRegNum
(
pAig
)
>
0
);
assert
(
Aig_ManConstrNum
(
pAig
)
==
0
);
...
...
@@ -933,7 +934,7 @@ int Ssw_RarSimulate( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, in
goto
finish
;
}
// check timeout
if
(
TimeOut
&&
((
float
)
TimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
TimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
...
...
@@ -1002,6 +1003,7 @@ int Ssw_RarSignalFilter( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize
{
Ssw_RarMan_t
*
p
;
int
r
,
f
,
i
,
k
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeOut
;
int
RetValue
=
-
1
;
assert
(
Aig_ManRegNum
(
pAig
)
>
0
);
assert
(
Aig_ManConstrNum
(
pAig
)
==
0
);
...
...
@@ -1071,7 +1073,7 @@ int Ssw_RarSignalFilter( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize
goto
finish
;
}
// check timeout
if
(
TimeOut
&&
((
float
)
TimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
TimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
...
...
src/aig/ssw/sswRarity2.c
View file @
868a1b9a
...
...
@@ -309,6 +309,7 @@ int Ssw_RarSimulate2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, i
int
fMiter
=
1
;
Ssw_RarMan_t
*
p
;
int
r
,
clk
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeOut
;
int
RetValue
=
-
1
;
assert
(
Aig_ManRegNum
(
pAig
)
>
0
);
assert
(
Aig_ManConstrNum
(
pAig
)
==
0
);
...
...
@@ -351,7 +352,7 @@ int Ssw_RarSimulate2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, i
printf
(
"."
);
}
// check timeout
if
(
TimeOut
&&
((
float
)
TimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
TimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
...
...
@@ -386,6 +387,7 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
int
fMiter
=
0
;
Ssw_RarMan_t
*
p
;
int
r
,
i
,
k
,
clkTotal
=
clock
();
int
nTimeToStop
=
time
(
NULL
)
+
TimeOut
;
int
RetValue
=
-
1
;
assert
(
Aig_ManRegNum
(
pAig
)
>
0
);
assert
(
Aig_ManConstrNum
(
pAig
)
==
0
);
...
...
@@ -458,7 +460,7 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
Ssw_RarTransferPatterns
(
p
,
p
->
vInits
);
Ssw_SmlInitializeSpecial
(
p
->
pSml
,
p
->
vInits
);
// check timeout
if
(
TimeOut
&&
((
float
)
TimeOut
<=
(
float
)(
clock
()
-
clkTotal
)
/
(
float
)(
CLOCKS_PER_SEC
))
)
if
(
TimeOut
&&
time
(
NULL
)
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
...
...
src/bdd/cudd/cuddAndAbs.c
View file @
868a1b9a
...
...
@@ -259,7 +259,7 @@ cuddBddAndAbstractRecur(
}
}
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
clock
(
)
)
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
time
(
NULL
)
)
return
NULL
;
if
(
topf
==
top
)
{
...
...
src/bdd/cudd/cuddBddIte.c
View file @
868a1b9a
...
...
@@ -926,7 +926,7 @@ cuddBddAndRecur(
if
(
r
!=
NULL
)
return
(
r
);
}
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
clock
(
)
)
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
time
(
NULL
)
)
return
NULL
;
/* Here we can skip the use of cuddI, because the operands are known
...
...
src/bdd/cudd/cuddBridge.c
View file @
868a1b9a
...
...
@@ -976,9 +976,9 @@ cuddBddTransferRecur(
if
(
st_lookup
(
table
,
(
const
char
*
)
f
,
(
char
**
)
&
res
))
return
(
Cudd_NotCond
(
res
,
comple
));
if
(
ddS
->
TimeStop
&&
ddS
->
TimeStop
<
clock
(
)
)
if
(
ddS
->
TimeStop
&&
ddS
->
TimeStop
<
time
(
NULL
)
)
return
NULL
;
if
(
ddD
->
TimeStop
&&
ddD
->
TimeStop
<
clock
(
)
)
if
(
ddD
->
TimeStop
&&
ddD
->
TimeStop
<
time
(
NULL
)
)
return
NULL
;
/* Recursive step. */
...
...
src/bdd/cudd/cuddCompose.c
View file @
868a1b9a
...
...
@@ -1251,7 +1251,7 @@ cuddBddVarMapRecur(
return
(
Cudd_NotCond
(
res
,
F
!=
f
));
}
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
clock
(
)
)
if
(
manager
->
TimeStop
&&
manager
->
TimeStop
<
time
(
NULL
)
)
return
NULL
;
/* Split and recur on children of this node. */
...
...
src/bdd/cudd/cuddSymmetry.c
View file @
868a1b9a
...
...
@@ -367,7 +367,7 @@ cuddSymmSifting(
if
(
ddTotalNumberSwapping
>=
table
->
siftMaxSwap
)
break
;
// enable timeout during variable reodering - alanmi 2/13/11
if
(
table
->
TimeStop
&&
table
->
TimeStop
<
clock
(
)
)
if
(
table
->
TimeStop
&&
table
->
TimeStop
<
time
(
NULL
)
)
break
;
x
=
table
->
perm
[
var
[
i
]];
#ifdef DD_STATS
...
...
src/sat/bsat/satSolver.c
View file @
868a1b9a
...
...
@@ -1485,7 +1485,7 @@ int sat_solver_solve(sat_solver* s, lit* begin, lit* end, ABC_INT64_T nConfLimit
// int nConfs = 0;
double
Ratio
=
(
s
->
stats
.
learnts
==
0
)
?
0
.
0
:
s
->
stats
.
learnts_literals
/
(
double
)
s
->
stats
.
learnts
;
if
(
s
->
nRuntimeLimit
&&
clock
(
)
>
s
->
nRuntimeLimit
)
if
(
s
->
nRuntimeLimit
&&
time
(
NULL
)
>
s
->
nRuntimeLimit
)
break
;
if
(
s
->
verbosity
>=
1
)
...
...
@@ -1510,7 +1510,7 @@ int sat_solver_solve(sat_solver* s, lit* begin, lit* end, ABC_INT64_T nConfLimit
// nof_conflicts = nof_conflicts * 3 / 2; //*= 1.5;
nof_learnts
=
nof_learnts
*
11
/
10
;
//*= 1.1;
//printf( "%d ", s->stats.conflicts );
// quit the loop if reached an external limit
if
(
s
->
nConfLimit
&&
s
->
stats
.
conflicts
>
s
->
nConfLimit
)
{
...
...
@@ -1523,9 +1523,10 @@ int sat_solver_solve(sat_solver* s, lit* begin, lit* end, ABC_INT64_T nConfLimit
// printf( "Reached the limit on the number of implications (%d).\n", s->nInsLimit );
break
;
}
if
(
s
->
nRuntimeLimit
&&
clock
(
)
>
s
->
nRuntimeLimit
)
if
(
s
->
nRuntimeLimit
&&
time
(
NULL
)
>
s
->
nRuntimeLimit
)
break
;
}
//printf( "\n" );
if
(
s
->
verbosity
>=
1
)
printf
(
"==============================================================================
\n
"
);
...
...
src/sat/pdr/pdrCore.c
View file @
868a1b9a
...
...
@@ -514,7 +514,7 @@ int Pdr_ManBlockCube( Pdr_Man_t * p, Pdr_Set_t * pCube )
}
// check the timeout
if
(
p
->
timeToStop
&&
clock
()
>=
p
->
timeToStop
)
if
(
p
->
timeToStop
&&
time
(
NULL
)
>
p
->
timeToStop
)
return
-
1
;
}
return
1
;
...
...
@@ -538,7 +538,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p )
int
k
,
RetValue
=
-
1
;
int
clkTotal
=
clock
();
int
clkStart
=
clock
();
p
->
timeToStop
=
(
p
->
pPars
->
nTimeOut
==
0
)
?
0
:
clock
()
+
(
CLOCKS_PER_SEC
*
p
->
pPars
->
nTimeOut
)
;
p
->
timeToStop
=
p
->
pPars
->
nTimeOut
?
time
(
NULL
)
+
p
->
pPars
->
nTimeOut
:
0
;
assert
(
Vec_PtrSize
(
p
->
vSolvers
)
==
0
);
// create the first timeframe
Pdr_ManCreateSolver
(
p
,
(
k
=
0
)
);
...
...
@@ -619,7 +619,7 @@ int Pdr_ManSolveInt( Pdr_Man_t * p )
}
// check the timeout
if
(
p
->
timeToStop
&&
clock
()
>=
p
->
timeToStop
)
if
(
p
->
timeToStop
&&
time
(
NULL
)
>
p
->
timeToStop
)
{
if
(
fPrintClauses
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment