- Dec 14, 1997
-
-
dtc authored
-
dtc authored
prior commit, also make them a little smart about the handling of a lower limit of 0 as only a float could be -0.0.
-
dtc authored
compiler/srctran.lisp o Replaced all of the old optimizer routines with new ones that should work much better. Optimizers should now handle all union types and most member types. NOTE: for some reason a member type with both numbers and non-numbers isn't quite handled correctly. The optimizer is only passed the elements of the member type that are numbers; it never sees the non-number elements of the member type. o Fixed a bug in bound-func. Since all of the FP traps are turned off, we now need to check in case the function returns things like infinity and convert them to nil. o Fixed a bug in the computation of bounds for rem. Invalid intervals were sometimes returned. compiler/float-tran.lisp o Mods to handle the changes in srctran.lisp. o All of the optimizers (from propagate-float and propagate-fun) should now handle union types and member types. o Fixed a bug in the atan optimizer for two args with at least one of them not being a real. o For functions that return (or float (complex float)), we try to be more careful and compute the bounds for the float part, since we usually have them. Not sure what we gain, though. -=-=-=- Plus some further cleanups and fixes by Douglas Crosher: o Merge with the latest verion of float-trans: CIS transform; no result types on complex function transforms. o Can use a common scale-float-derive-type-aux function. o complex-derive-type-aux-2 was broken, needed updating to handle changes. o For sqrt and log return an (or float complex) type if the argument type includes 0.0 in its range as 0.0 = -0.0 so the argument may also be -0.0. o A number of the optimizers returned a complex float with invalid intervals just copied from the argument - strip the intervals from the returned type in these cases. o Note no expt optimiser.
-
- Dec 12, 1997
-
-
dtc authored
- For constant arguments, check the actual error after taking the value MOD the limit so that a wider range are acceptable. E.g. Can now inline (random (expt 2 32)) for which there is no error. - On the x86 port use the faster multiplication rather than division for the MOD calculation.
-
- Dec 06, 1997
- Dec 05, 1997
-
-
dtc authored
Raymod Toy. Backout the calls to float-or-complex-type in the sin and cos derive-type optimizers, as these gave problems with union types.
-
- Dec 04, 1997
-
-
dtc authored
Fixed small bug in elfun-derive-type-1: When a complex number is passed in, we don't want to just copy that as the result. We want the same type of complex number but with no bounds included. New function float-or-complex-type to compute the union type (or float (complex float)) with the appropriate type of float and bounds, if needed. At the end compiler/float-tran.lisp, the derive-type optimizers for sin, cos, and tan, are never enabled, because of a misspelling of propagate-fun-type (was progagate-fun-type). Plus a few fixes for these. Added expt derive-type optimizer, should handle all cases. Added derive-type optimizers for conjugate and cis.
-
- Nov 27, 1997
-
-
dtc authored
o Fixed bug in real/imag part optimizers which didn't handle union types. o Added derive-type optimizer for complex. o Added deftransforms for complex operations: o complex-complex ops: + - * / o complex-float ops: + - * / o float-complex ops: + - *
-
- Nov 16, 1997
-
-
dtc authored
argument to %realpart and %imagepart respectively. Enable the realpart and imagpart derive-type optimizers which now work and are important for these functions to be inlined.
-
- Oct 15, 1997
-
-
dtc authored
and tan, that provide the result type and work with union types. The result range which is problematic is not calculated. Removed the old versions.
-
- Oct 09, 1997
-
-
dtc authored
code yet.
-
- Oct 08, 1997
-
-
dtc authored
results.
-
- Sep 20, 1997
-
-
dtc authored
Elfun-derive-type-union didn't properly handle the case of elfun-derive-type-1 returning a union type like (or float (complex float)) - it does now. Elfun-derive-type-1 is slightly enhanced so that if the input is a complex type, the result is a complex type of the same. Before, we just returned default-type. Also, it's a bit smarter now so that if the result is supposed to be (or float (complex float)), we try to refine float to single-float or double-float if possible.
-
- Sep 08, 1997
-
-
pw authored
defined for #+(or :propagate-fun-type :propagate-float-type).
-
- Sep 05, 1997
-
-
dtc authored
-
dtc authored
-
dtc authored
o Added optimizers for ftruncate, ffloor, and fceiling. o Most elementary functions can now handle union types and appropriate bounds are returned. This includes truncate, floor, ceiling, and float. o Some bugs in the optimizers were also fixed because union types are handled now. In particular most functions returned (FLOAT) (or subtype thereof) when in fact the answer should have been (OR FLOAT (COMPLEX FLOAT)). o The optimizer for log now handles the case of (log x y) and returns appropriate bounds for it. (It used to give up in this case.) o The optimizer for atan and phase works better and handles more cases.
-
- Aug 30, 1997
-
-
dtc authored
floating point exceptions disabled. It avoids the overhead of {set,get}-floating-point-modes, saving some consing and generally giving smaller code. Exploit this new macro where {set,get}-floating-point-modes has been used.
-
- Jun 11, 1997
-
-
dtc authored
32 bits on x86 and 31 on other ports.
-
- Jun 03, 1997
-
-
dtc authored
-
- Apr 16, 1997
-
-
dtc authored
conditional in the compile; now uses backend-featurep :x86; should help cross-compiling.
-
- Apr 12, 1997
-
-
dtc authored
backend-featurep :x86 so this doesn't break cross-compiling.
-
- Feb 15, 1997
-
-
dtc authored
-
- Feb 12, 1997
-
-
dtc authored
-
- Feb 05, 1997
-
-
pw authored
-
- Jan 18, 1997
-
-
ram authored
-
- Oct 31, 1994
-
-
ram authored
-
- Feb 11, 1994
-
-
cvs2git authored
-
- Dec 17, 1993
-
-
wlott authored
-
- Nov 08, 1993
-
-
wlott authored
-
- Aug 25, 1993
-
-
ram authored
-
- Aug 21, 1993
-
-
ram authored
-
- May 12, 1993
-
-
ram authored
-
- May 11, 1993
- May 07, 1993
-
-
ram authored
-
- Jan 13, 1993
-
-
cvs2git authored
-
- Aug 13, 1992
-
-
ram authored
-
- Aug 05, 1992
-
-
ram authored
it.
-