Skip to content
Snippets Groups Projects
  1. Dec 14, 1997
    • dtc's avatar
      e3f44e41
    • dtc's avatar
      Fix the log and sqrt derive type optimizers which I broken in the · a4cd0145
      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.
      a4cd0145
    • dtc's avatar
      Merge in the revised derive-type optimisers from Raymond Toy: · 1a0a7672
      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.
      1a0a7672
  2. Dec 12, 1997
    • dtc's avatar
      Special random transform for use with random-mt19937: · d947becd
      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.
      d947becd
  3. Dec 06, 1997
  4. Dec 05, 1997
  5. Dec 04, 1997
    • dtc's avatar
      Update from Raymond Toy: · e22d22a8
      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.
      e22d22a8
  6. Nov 27, 1997
    • dtc's avatar
      Patch from Raymond Toy: · 72efc87b
      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: + - *
      72efc87b
  7. Nov 16, 1997
  8. Oct 15, 1997
  9. Oct 09, 1997
  10. Oct 08, 1997
  11. Sep 20, 1997
    • dtc's avatar
      Updates from Raymond Toy: · 15ca185f
      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.
      15ca185f
  12. Sep 08, 1997
  13. Sep 05, 1997
    • dtc's avatar
      Updated log derive-type optimiser from Raymond Toy. · 27a0f74e
      dtc authored
      27a0f74e
    • dtc's avatar
      8f1da183
    • dtc's avatar
      Updates to the derive type optimisers from Raymond Toy: · 8eb07ea5
      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.
      8eb07ea5
  14. Aug 30, 1997
  15. Jun 11, 1997
  16. Jun 03, 1997
  17. Apr 16, 1997
  18. Apr 12, 1997
  19. Feb 15, 1997
  20. Feb 12, 1997
  21. Feb 05, 1997
  22. Jan 18, 1997
  23. Oct 31, 1994
  24. Feb 11, 1994
  25. Dec 17, 1993
  26. Nov 08, 1993
  27. Aug 25, 1993
  28. Aug 21, 1993
  29. May 12, 1993
  30. May 11, 1993
  31. May 07, 1993
  32. Jan 13, 1993
  33. Aug 13, 1992
  34. Aug 05, 1992
Loading