1. 24 Jul, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] use powers of two for the sizes of all hash tables · 361b44e5
      Alexandre Duret-Lutz authored
      * src/bddop.c, src/bddx.h, src/cache.c, src/cache.h, src/kernel.c,
      src/kernel.h, src/prime.c, src/prime.h, src/reorder.c: Use power of
      two for the sizes of all hash tables, in order to reduce the amount of
      divisions performed.  Also allow bddhash to be smaller than bddnodes.
  2. 01 Feb, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] fix some -Wpedantic messages · a2f174f7
      Alexandre Duret-Lutz authored
      * src/bddop.c: Empty macro arguments are undefined ISO C90 and
      ISO C++98.  Use '+' when calling APPLY_SHORTCUTS.
      * src/fdd.c, src/kernel.c: Avoid constructs invalid in C90.
      * src/bddop.c, src/bddx.h, src/kernel.c, src/kernel.h,
      examples/cmilner/cmilner.c: Remove C++ comments.
  3. 09 Nov, 2016 1 commit
  4. 08 Nov, 2016 1 commit
  5. 10 Mar, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] fix undefined behavior · 787e3f93
      Alexandre Duret-Lutz authored
      The bug was found while running Spot's src/tgbatest/randpsl.test
      on Debian i386 with gcc-4.9.2.  The following call would crash:
      ./ltl2tgba -R3 -t '(!(F(({{{(p0) |
      {[*0]}}:{{{(p1)}[*2]}[:*]}[*]:[*2]}[:*0..3]}[]-> (G(F(p1)))) &
      (G((!(p1)) | ((!(p2)) W (G(!(p0)))))))))'
      On amd64 the call does not crash, but valgrind nonetheless
      report that uninitialized memory is being read by bdd_gbc()
      during the second garbage collect.
      * src/kernel.h (PUSHREF): Define as a function rather than a macro
      to avoid undefined behavior.  See comments for details.
  6. 30 Oct, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      buddy: rename libbdd to libbddx · ad8d2422
      Alexandre Duret-Lutz authored
      * buddy/src/bdd.h, buddy/src/bvec.h, buddy/src/fdd.h: Rename as...
      * buddy/src/bddx.h, buddy/src/bvecx.h, buddy/src/fddx.h: ... these.
      * buddy/src/Makefile.am: Build libbddx.la instead of libbdd.la.
      * buddy/examples/Makefile.def: Use it.
      * Makefile.am, buddy/src/bddtest.cxx, buddy/src/bvec.c,
      buddy/src/cppext.cxx, buddy/src/fdd.c, buddy/src/imatrix.h,
      buddy/src/kernel.h, buddy/examples/adder/adder.cxx,
      buddy/examples/bddcalc/parser_.h, buddy/examples/bddtest/bddtest.cxx,
      buddy/examples/cmilner/cmilner.c, buddy/examples/fdd/fdd.cxx,
      buddy/examples/milner/milner.cxx, buddy/examples/money/money.cxx,
      buddy/examples/queen/queen.cxx, buddy/examples/solitare/solitare.cxx,
      m4/buddy.m4, src/ltlvisit/apcollect.hh, src/ltlvisit/simplify.hh,
      src/misc/bddlt.hh, src/misc/bddop.hh, src/misc/minato.hh,
      src/priv/acccompl.hh, src/priv/accconv.hh, src/priv/accmap.hh,
      src/priv/bddalloc.cc, src/tgba/bdddict.hh, src/tgba/bddprint.hh,
      src/tgba/tgbamask.hh, src/tgba/tgbasafracomplement.cc,
      src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/sccstack.hh,
      src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.hh,
      src/tgbaalgos/weight.hh, wrap/python/buddy.i: Adjust.
      * NEWS, README: Document it.
  7. 19 Jun, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] Reduce the size of bddNode to improve cache efficiency. · e7a46e10
      Alexandre Duret-Lutz authored
      The unicity table was mixed with the bddNode table for now
      apparent reason.  After the hash of some node is computed,
      bddnodes[hash] did only contain some random node (not the one
      looked for) whose .hash member would point to the actual node with
      this hash.  So that's a two step lookup.  With this patch, we sill
      have a two step lookup, but the .hash member have been moved to a
      separate array.  A consequence is that bddNode is now 16-byte long
      (instead of 20) so it will never span across two cache lines.
      * src/kernel.h (bddNode): Remove the hash member, and move it...
      (bddhash): ... as this new separate table.
      * src/kernel.c, src/reorder.c: Adjust all code.
  8. 28 Apr, 2012 1 commit
  9. 04 Apr, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] · 61d9e721
      Alexandre Duret-Lutz authored
      Remove more sanity checks when NDEBUG is set.
      * src/kernel.h (CHECKnc): New macro.
      * src/kernel.c (bdd_var, bdd_low, bdd_high, bdd_ithvar,
      bdd_nithvar): Use it.
  10. 03 Apr, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] · 30f00584
      Alexandre Duret-Lutz authored
      * src/kernel.h (CHECK, CHECKa, CHECKn): Disable if NDEBUG is set.
  11. 22 Jan, 2010 1 commit
  12. 09 Dec, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      [buddy] · d462f50b
      Alexandre Duret-Lutz authored
      Inline bdd_addref() and bdd_delref() to speedup BDD operations.
      * src/kernel.c, src/kernel.h (bdd_addref, bdd_delref): Move these
      functions and there associated global variables...
      * src/bdd.c (bdd_error): ... and this function ...
      * src/bdd.h (bdd_addref, bdd_delref, bdd_error): ...here so that
      they can be inlined.
  13. 28 Jun, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      Merge BuDDy 2.3. · aa4a582f
      Alexandre Duret-Lutz authored
      * examples/calculator/, examples/internal/: Were renamed as ...
      * examples/bddcalc/, examples/bddtest/: ... these.
      * configure.ac: Adjust version and output Makefiles.
      * examples/Makefile.am (SUBDIRS): Adjust subdir renaming.
      * examples/cmilner/milner.c, examples/fdd/statespace.cxx: Were
      renamed as ...
      * examples/cmilner/cmilner.c, examples/fdd/fdd.cxx: ... these.
      * examples/cmilner/Makefile.am, examples/fdd/Makefile.am: Adjust
      * src/Makefile.am (AM_CPPFLAGS): Define VERSION.
  14. 20 May, 2003 1 commit
  15. 05 May, 2003 3 commits
    • Alexandre Duret-Lutz's avatar
      * configure.ac: Output config.h. · 89cc96b8
      Alexandre Duret-Lutz authored
      * src/kernel.h: Include it.
      * src/Makefile.am (AM_CPPFLAGS): New variable.
    • Alexandre Duret-Lutz's avatar
      * configure.ac, Makefile.am, src/Makefile.am, doc/Makefile.am, · 605dce2a
      Alexandre Duret-Lutz authored
      examples/Makefile.am, examples/Makefile.def,
      examples/adder/Makefile.am, examples/calculator/Makefile.am,
      examples/cmilner/Makefile.am, examples/fdd/Makefile.am,
      examples/internal/Makefile.am, examples/milner/Makefile.am,
      examples/money/Makefile.am, examples/queen/Makefile.am,
      examples/solitar/Makefile.am, m4/debug.m4, m4/gccwarns.m4,
      ChangeLog, INSTALL: New files.
      * config, makefile, src/makefile, doc/makefile,
      examples/adder/makefile, examples/calculator/makefile
      examples/cmilner/makefile, examples/fdd/makefile,
      examples/internal/makefile, examples/milner/makefile,
      examples/money/makefile, examples/queen/makefile,
      examples/solitare/makefile : Delete.
      * examples/adder/adder.cxx, examples/fdd/statespace.cxx,
      examples/internal/bddtest.cxx, examples/milner/milner.cxx,
      examples/money/money.cxx, examples/queen/queen.cxx,
      examples/solitare/solitare.cxx: Include iostream.
      * examples/calculator/parser.y: Rename as ...
      * examples/calculator/parser.yxx: ... this.  Remove spurious
      comas in %token, %right, and %left arguments.
      * examples/calculator/parser.h: Rename as ...
      * examples/calculator/parser_.h: ... this, because the bison
      rule with output parser.h (not tokens.h) from parser.y.
      * examples/calculator/lexer.l: Rename as ...
      * examples/calculator/lexer.lxx: ... this.  Include parser.h
      instead of tokens.h.
      * examples/calculator/slist.h
      (voidSList::voisSListElem, SList::ite): Fix friend usage.
      * src/kernel.h (DEFAULT_CLOCK): Default to 60 if not already
      * README: Update build instruction, and file listing.
    • Alexandre Duret-Lutz's avatar
      Initial revision · cf5dd463
      Alexandre Duret-Lutz authored