diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2011-02-13 20:50:29 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2011-02-13 20:50:29 -0800 |
commit | a7e214bb01085492e330186295a71da35846a6b7 (patch) | |
tree | f0d2d8753a12036226752f92771bfed5b7876d39 /src/bdd | |
parent | 573694f9bf9cc019c9a4d265fbcb04c0fbde78e1 (diff) | |
download | abc-a7e214bb01085492e330186295a71da35846a6b7.tar.gz abc-a7e214bb01085492e330186295a71da35846a6b7.tar.bz2 abc-a7e214bb01085492e330186295a71da35846a6b7.zip |
Improved timeout in the BDD reachability engines.
Diffstat (limited to 'src/bdd')
-rw-r--r-- | src/bdd/cudd/cuddAndAbs.c | 3 | ||||
-rw-r--r-- | src/bdd/cudd/cuddBddIte.c | 3 | ||||
-rw-r--r-- | src/bdd/cudd/cuddBridge.c | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/src/bdd/cudd/cuddAndAbs.c b/src/bdd/cudd/cuddAndAbs.c index 39695918..2f38490d 100644 --- a/src/bdd/cudd/cuddAndAbs.c +++ b/src/bdd/cudd/cuddAndAbs.c @@ -259,6 +259,9 @@ cuddBddAndAbstractRecur( } } + if ( manager->TimeStop && manager->TimeStop < clock() ) + return NULL; + if (topf == top) { index = F->index; ft = cuddT(F); diff --git a/src/bdd/cudd/cuddBddIte.c b/src/bdd/cudd/cuddBddIte.c index 1b152f02..4e75aab2 100644 --- a/src/bdd/cudd/cuddBddIte.c +++ b/src/bdd/cudd/cuddBddIte.c @@ -926,6 +926,9 @@ cuddBddAndRecur( if (r != NULL) return(r); } + if ( manager->TimeStop && manager->TimeStop < clock() ) + return NULL; + /* Here we can skip the use of cuddI, because the operands are known ** to be non-constant. */ diff --git a/src/bdd/cudd/cuddBridge.c b/src/bdd/cudd/cuddBridge.c index d0f96a2f..97a6f393 100644 --- a/src/bdd/cudd/cuddBridge.c +++ b/src/bdd/cudd/cuddBridge.c @@ -975,6 +975,11 @@ cuddBddTransferRecur( /* Check the cache. */ if (st_lookup(table, (const char *)f, (char **)&res)) return(Cudd_NotCond(res,comple)); + + if ( ddS->TimeStop && ddS->TimeStop < clock() ) + return NULL; + if ( ddD->TimeStop && ddD->TimeStop < clock() ) + return NULL; /* Recursive step. */ index = f->index; |