- 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.
-
- Apr 24, 1990
-
-
ram authored
deleted.
-
- Mar 16, 1990
-
-
wlott authored
other transforms, and changed IR1-OPTIMIZE-COMBINATION to respect this.
-
- Mar 05, 1990
-
-
cvs2git authored
-
- Feb 06, 1990
-
-
wlott authored
-