Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Nov 2, 2010
  1. @caryr @steveicarus

    Make ivl_alloc.h the last include so it doesn't effect any system inc…

    caryr authored steveicarus committed
    In ivl_alloc.h we redefine malloc(), realloc() and calloc() to have
    standard error checking. We don't want to do this for anything that
    comes from the standard headers. This specifically doesn't work if
    a C++ header files does std::malloc, etc.
    Also change to -W instead of -Wextra since that is more portable. I
    plan to add a check from -Wextra and use it when available since it
    is more descriptive.
Commits on Oct 15, 2010
  1. @caryr @steveicarus

    Add error checking definitions for malloc(), realloc() and calloc()

    caryr authored steveicarus committed
    This patch adds defines that translate all malloc(), realloc() and calloc()
    calls into ones with error checking when ivl_alloc.h is included.
Commits on Oct 2, 2010
  1. @steveicarus
Commits on Jun 1, 2010
  1. @caryr @steveicarus

    Remove malloc.h support and for C++ files use <c...> include files.

    caryr authored steveicarus committed
    The functions (malloc, free, etc.) that used to be provided in
    malloc.h are now provided in cstdlib for C++ files and stdlib.h for
    C files. Since we require a C99 compliant compiler it makes sense
    that malloc.h is no longer needed.
    This patch also modifies all the C++ files to use the <c...>
    version of the standard C header files (e.g. <cstdlib> vs
    <stdlib.h>). Some of the files used the C++ version and others did
    not. There are still a few other header changes that could be done,
    but this takes care of much of it.
Commits on Apr 23, 2010
  1. @caryr @steveicarus

    No need to have an if for a delete (found with cppcheck).

    caryr authored steveicarus committed
    It is acceptable to call delete on a NULL object. It's also acceptable
    to assign the value to zero if it is already zero. Removing the
    superfluous if should produce slightly better code since there is no
    conditional to deal with except for what is likely in the delete
    implementation, but that should be highly optimized.
Commits on Apr 14, 2010
  1. @steveicarus

    Cleanup various style issues.

    steveicarus authored
    This patch cleans up some style issues: no need to check that a value
    is defined before freeing or deleting it, use C++ style casts, make
    sure to NULL terminate strncpy(), empty() is faster than size() for
    size == 0 or size >= 0 checks, re-scope some variables, etc.
Commits on Mar 16, 2010
  1. @steveicarus

    Remove Link::strength_t and PGate::strength_t types.

    steveicarus authored
    These types are useless repetition of the ivl_drive_t type.
    This is also another chapter in the series to push ivl_target
    generation further upstream.
  2. @steveicarus

    Account for output drive of LPM mux devices.

    steveicarus authored
    LPM devices, and LPM MUX devices in particular, need to
    have their drive strength accounted for.
Commits on Dec 11, 2009
  1. @steveicarus

    Remove dead init values from NetNet and Link objects.

    steveicarus authored
    It turns out that although there was all kinds of code to manage
    these members, there were no uses anywhere. It must have been a
    legacy from a previous era. So remove the dead code so that it
    doesn't confuse me again.
  2. @steveicarus

    Clean up some optimizer formance around the fringes.

    steveicarus authored
    Remove some wasteful and excess scans of the Nexus of some links,
    and remove dead code so we can see what we're doing. Also inline
    some commonly used and trivial functions.
Commits on Dec 10, 2009
  1. @steveicarus

    Optimized Nexus handling during code generation.

    steveicarus authored
    Once code generation starts, the Nexus structure no longer needs to
    support fast insertion/connect operations. So have the code generator
    lock down the Nexus structures and adjust the Link lists for optimal
    access during readout.
Commits on Dec 9, 2009
  1. @steveicarus

    Restructure Nexus lists of Links to handle large net lists.

    steveicarus authored
    When netlists get very large, the Nexus::connect() method tickles
    the O(N) performance and elaboration gets very slow. Rework the
    connect method to be O(C), for a drastic performance boost for
    large designs.
  2. @steveicarus

    Speed up the connect(Nexus*,Link&) function somewhat.

    steveicarus authored
    This simplifies and reorganizes this function in order to improve
    the performance of this function by a constant factor. I think we
    really need to improve this by an entire order (and not just a
    simple factor) but this helps.
Commits on Oct 6, 2009
  1. @steveicarus

    Do not cprop through ternaries if the selector is an l-value.

    steveicarus authored
    It turns out that it is possible for an otherwise constant net
    mux to be non-constant if there is a force that can drive the
    net. This can be detected as an l-value reference to an otherwise
    constant selector.
Commits on Mar 6, 2009
  1. @steveicarus
Commits on Jan 8, 2009
  1. @steveicarus

    Avoid creating Nexus objects until they are really needed.

    steveicarus authored
    By not creating Nexus objects until necessary, we avoid creating a
    lot of spurious objects. In fact, it is true that almost every
    link that is created and connected to another link will create a
    spurious Nexus object without this patch.
Commits on Oct 14, 2008
  1. @ldoolitt @steveicarus

    Shadow reduction part 2

    ldoolitt authored steveicarus committed
    Continue cleaning up shadowed variables, flagged by turning on -Wshadow.
    No intended change in functionality.  Patch looks right, and is tested
    to compile and run on my machine.  No regressions in test suite.
Commits on Sep 14, 2008
  1. @steveicarus

    Remove redundant NetPins node pointer.

    steveicarus authored
    Remove redundant pointer to the containing NetPins object by keeping
    the pointer only in the first Link (pin 0) of an array of links. In
    this link, replace the pin number with the NetPins pointer, and set
    a pins_zero_ flag to indicate that this has happened. This way, only
    the first pin in a Link array will have the pointer to the NetPins
    that contains the array, and the pointer takes up practically no space
    at all.
Commits on Sep 11, 2008
  1. @steveicarus

    Get rid of names attached to Links.

    steveicarus authored
    This is simply no need for the names on links,
    other then for debug messages, and there are
    better ways to handle that.
Commits on Sep 10, 2008
  1. @steveicarus
Commits on Aug 30, 2008
  1. @steveicarus
  2. @steveicarus
Commits on Aug 12, 2008
  1. @steveicarus

    Continuous assign no longer uses elaborate_net.

    steveicarus authored
    convert the continuous assign elaboration to use elaborate_expr
    and synthesize methods instead of the elaborate_net methods of
    PExpr. This exposes problems with the synthesize methods, but it
    is a better way to do it.
Commits on Aug 7, 2008
  1. @steveicarus

    Add BUFZ to input ports when necessary.

    steveicarus authored
    When driving an input port to a module, watch out for the case where
    the net is also driven within the instance. If this is the case, take
    pains to make sure what goes on in the instance doesn't leak out
    through the input port. Add a BUFZ (continuous assignment) to isolate
    the context from internal driving.
Commits on Aug 5, 2008
  1. @steveicarus

    Create a branch object to be the argument to the access function.

    steveicarus authored
    The NetBranch object is connected, but not like an object, so the
    NetPins object base class is factored out from NetObj to handle the
    connectivity, and the NetBranch class uses the NetPins to connect a
    Also, account for the fact that nets with a discipline are by default
Commits on Apr 5, 2008
  1. @caryr @steveicarus

    Fix another delete[]/free problem.

    caryr authored steveicarus committed
    This patch fixes a delete[] vs free problem in the NexusSet
    class. The items_ array was being allocated with malloc/realloc
    and freed with delete[]. The quick fix was to replace delete[]
    with a call to free(). A better fix would probably be to rework
    the class to use a vector.
Commits on Feb 2, 2008
  1. @steveicarus

    Get delays of signed extended continuous assignments right.

    steveicarus authored
    Padding and continuous assignment caused problems if the continuous
    assignment includes a delay. The problem is that the padding was
    not necessarily included in the delay. Rework the elaboration to
    make sure the padding is indeed included in the delay.
Commits on Jan 5, 2008
  1. @ldoolitt @steveicarus

    header includes for gcc-4.3 compatibility

    ldoolitt authored steveicarus committed
    minimal changes required to build without error
    tested with gcc-4.3 (Debian 4.3-20071130-1) 4.3.0 20071130 (experimental)
Commits on Jun 2, 2007
  1. Properly evaluate scope path expressions.

    steve authored
Commits on Mar 26, 2007
Commits on Feb 2, 2006
Commits on Sep 25, 2005
  1. Simplify NexusSet set handling.

    steve authored
Commits on Jun 13, 2005
  1. Fix compile errors.

    steve authored
Commits on Apr 24, 2005
  1. Update DFF support to new data flow.

    steve authored
Commits on Jan 9, 2005
Something went wrong with that request. Please try again.