Skip to content
  • ram's avatar
    Changes to handling of inline expansion/inlinep information. · 82e3ca56
    ram authored
    LEXENV-INLINES is gone.  Instead, :NOTINLINE references are changed
    to refer to :NOTINLINE DEFINED-FUNCTION leafs.  The previous use
    in e.g. locall where we set LEAF-INLINEP to NIL to inhibit further
    optimization in the case of an error is now handed by the :ERROR
    combination-kind.
    Moved *failed-optimizations* to COMPONENT-FAILED-OPTIMIZATIONS.  Added
    COMPONENT-INLINE-EXPANSIONS which stops infinite (or very frequent) inline
    expansions.
    Added :COMPLEX-TOP-LEVEL functional kind used to represent components
    with mixed top-level and run-time code.
    The DEFINED-FUNCTION leaf stores information about functions where we 
    either know the actual definition, inline expansion, or have a non-default
    inlinep.  This allows us to clean up the semantics of block compilation
    and inline expansion a bit, since we can keep track of both the GLOBAL-VAR
    and FUNCTIONAL versions of a function.
    82e3ca56