-
- Downloads
Changes to handling of inline expansion/inlinep information.
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.
Loading
Please register or sign in to comment