- Apr 01, 1992
-
-
ram authored
-
- Feb 19, 1992
-
-
wlott authored
-
- Feb 11, 1992
-
-
ram authored
type, because there isn't any.
-
- Jan 25, 1992
-
-
ram authored
MV-combinations.
-
- Dec 20, 1991
-
-
ram authored
seems that we do derive inconsistent types in dead code.
-
- Dec 16, 1991
-
-
wlott authored
-
- Dec 15, 1991
- Dec 11, 1991
-
-
ram authored
is probably always a bug, but I don't want to use ASSERT until all the problems are fixed. Changed RETURN optimization to call MAYBE-CONVERT-TAIL-CALL. Updated for new tail-set semantics. Changed VALUES IR1 transform and SUBSTITUTE-SINGLE-USE-CONTINUATION to clear out the old NODE-DERIVED-TYPE so that the type doesn't spuriously go to NIL.
-
- Nov 16, 1991
- Nov 15, 1991
-
-
ram authored
information, since both the derived and asserted types can independently spuriously be NIL during IR1 conversion. Also, deleted some unnecessary (and wrong) checking of CONTINUATION-REOPTIMIZE in IR1-OPTIMIZE-MV-COMBINATION.
-
- Nov 13, 1991
-
-
ram authored
whether any args have reoptimize set. Most calls to IR1-OPTIMIZE-COMBINATION that this inhibits are actually desirable. Deleted assertion in JOIN-SUCCESSOR-IF-POSSIBLE. This really can happen, and DELETE-CONTINUATION should do the right thing. Changed MAYBE-TERMINATE-BLOCK to take an explicit IR1-P flag. Fixed it not to consider deleted continuations to have type NIL. Use DELETE-CONTINUATION on the old continuation if it has no references and we aren't in IR1 conversion.
-
- Nov 09, 1991
-
-
ram authored
if the result type is NIL. If so, it stops the block and links it to the component tail. Changed IR1-OPTIMIZE-BLOCK to call MAYBE-TERMINATE-BLOCK. Changed REOPTIMIZE-CONTINUATION to quietly do nothing when called on an unused continuation.
-
- Oct 03, 1991
-
-
ram authored
that we can keep track of the transform note.
-
- May 16, 1991
-
-
ram authored
so that we don't blow away type checks.
-
- Mar 11, 1991
-
-
ram authored
components. This can happen when we close over top-level variables.
-
- Mar 10, 1991
-
-
ram authored
-
- Feb 20, 1991
- Feb 14, 1991
-
-
ram authored
and to convert the call immediately and check if it wins.
-
- Feb 04, 1991
-
-
ram authored
MV-combination optimizers depending on the kind of call. We convert newly discovered MV-BINDs local :MV-LET calls, and convert MV-CALLs to MV-BINDs if the argument count is known. Also added a VALUES-LIST IR1 optimizer that converts (values-list (list ...)) into (values ...). These changes make inline expansion of functions that have &rest args and do APPLY convert to FUNCALL.
-
- Jan 13, 1991
-
-
ram authored
PROPAGATE-TO-ARGS so that we know that the first arg won't be deleted yet.
-
- 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.
-
- Oct 14, 1990
-
-
ram authored
continuation goes to an IF.
-
- Oct 11, 1990
-
-
ram authored
-
- Oct 05, 1990
-
-
ram authored
not a subtype of the asserted type, not just when the arg *value* is nota subtype. This is necessary to prevent representation selection from being defeated.
-
- Oct 03, 1990
-
-
ram authored
failed transform, instead of just one per call. Also, when a transform quietly gives up, blow away any old note for that transform.
-
- Sep 06, 1990
-
-
wlott authored
-
- Aug 24, 1990
-
-
wlott authored
-
- Jul 24, 1990
-
-
ram authored
substituting rather than after, since after substituting, there are no refs to propagate to.
-
- Jul 23, 1990
-
-
ram authored
of separate boolean flags.
-
- Jun 17, 1990
-
-
ram authored
lose again from people doing it on non-constant continuations.
-
- May 30, 1990
-
-
cvs2git authored
-
- May 17, 1990
-
-
ram authored
some weird TYPE-CHECK annotation. This prevents us from trashing type check generation.
-
- May 16, 1990
-
-
ram authored
Fixed continuation substitution stuff to look at the let's home lambda so that we will sometimes do something.
-
- May 12, 1990
-
-
ram authored
Now we substitute for global function variables when the reference isn't :notinline. Also, single-reference let variables can be squeezed out by replacing the ref's value continuation with the argument continuation. The biggest advantage of this is that it allows output type assertions on the reference to be seen by the argument, which helps INCF, PSETQ, etc.
-
- May 09, 1990
-
-
ram authored
variables correctly.
-
- May 07, 1990
-
-
ram authored
deleted-contiuation merging.
-
- Apr 27, 1990
-
-
ram authored
ending in a deleted continuation.
-