- Jan 30, 1991
-
-
ram authored
Added CONSTANTLY and COMPLEMENT.
-
ram authored
to delete the LET on the last var deletion. In CHANGE-REF-LEAF, if the new leaf's type is a FUNCTION-TYPE, then just set the node type to that type. This prevents the type from going totally vague when we change from one function type to another.
-
ram authored
in the hope that this will preserve load-order locality in the objects hanging off of the info environment (such as the compiler backend functions.)
-
- Jan 25, 1991
- Jan 24, 1991
-
-
wlott authored
-
- Jan 22, 1991
-
-
ram authored
unnecessary shifting.
-
- Jan 20, 1991
- Jan 14, 1991
- Jan 13, 1991
-
-
ram authored
-
ram authored
-
ram authored
for making similar transforms.
-
ram authored
-
ram authored
Added transform for VECTOR-LENGTH that returns the constant result when the type has specified dimensions.
-
ram authored
-
ram authored
PROPAGATE-TO-ARGS so that we know that the first arg won't be deleted yet.
-
- Jan 12, 1991
- Jan 09, 1991
- Jan 08, 1991
-
-
wlott authored
-
- Jan 03, 1991
-
-
ram authored
ANSI cleanup or other.
-
ram authored
desired type, rather than any supertypes.
-
ram authored
with the FREEZE-TYPE declaration..
-
ram authored
-
ram authored
the presence of arbitrary destructive modifications of the block. Fixed a broken declaration.
-
ram authored
when our policy is :fast-safe.
-
ram authored
Made let conversion set the LAMBDA-CALL-LEXENV.
-
ram authored
Made NODE-HOME-LAMBDA work now that lets can be deleted. Made DELETE-LAMBDA print a note if the function was never referenced. Changed dead code deletion to ignore blocks in deleted functions and to not worry about special-casing EPs, since those are now handled by function deletion notes. Also, we now ignore unreachable fixnums or characters, since they could coincidentally appear in the source and expalsion. Added some uses of REQUIRED-ARGUMENT.
-
ram authored
we don't get spurious 'defined but never used' errors. Similarly, set leaf-ever-used on all optional-dispatch entry points. Fixed LABELS to backpatch the FENV as well as substituting for references so that inline expansion of a LABELS function will work. Made PROCLAIM recognize FREEZE-TYPE.
-
- Jan 02, 1991
-
-
ram authored
If we discover a known call, and that call has a source transform or is a conditional, then we replace the function with a lambda that just calls the function again. This gives IR1 conversion another chance to permute the call. Changed IR1 transforms to test the function type with :STRICT-RESULT T since this is almost always what you want when writing a transform. In constant folding, if the call returns multiple values, change the function to a call to VALUES, rather than just blowing off constant folding. Added DELETE-LET which deletes the bind node for a let when all its variables are deleted. This cleans up the IR1 a great deal, enabling some optimizations. Added an IR1 optimizer for VALUES that converts MV-BIND/VALUES into a LET (as long as the VALUES is the only use of the values continuation.) This helps optimization of the results of IR1 transforms for multiple value functions. Added a IR1 transform for VALUES that discards all but the first value when the context is not a multiple-value receiver.
-