Skip to content
Snippets Groups Projects
  1. Dec 29, 1997
  2. Dec 28, 1997
  3. Dec 27, 1997
  4. Dec 25, 1997
  5. Dec 22, 1997
    • dtc's avatar
      Bring in enhancements from the experimental branch: · a9e601ad
      dtc authored
      * On the X86 port stack SCs may be placed in the list of operand
      preferred SCs and these are selected by emit-coerce-vop in preference
      to the register SCs because they happen to be defined first in
      vm.lisp.  Since in most cases a register SC is preferable,
      emit-coerce-vop now searches these first.
      
      Note that there are a few VOPs on the X86 port for which a stack SC is
      preferable, typically when the argument must be in memory,
      e.g. integer to float coercion, so this could use a little move work.
      
      
      * Add-representation-costs ignores the representation costs for MOVE
      VOPs when the representation of neither argument has been
      determined. In this case select-tn-representation chooses the first
      possible representation which may not be the most appropriate, and
      which can be improved upon by delaying the choice for the MOVE VOPs.
      
      This patch modifies select-representations to use two passes. On the
      first pass ambiguous choices are ignored giving a better chance for
      the propagation of argument and result representations for the MOVE
      VOPs after which a second pass can make a better choice.  This
      required an extension to select-tn-representation to return a second
      value indicating if a unique choice could be made.
      a9e601ad
  6. Dec 21, 1997
  7. Dec 20, 1997
  8. Dec 19, 1997
  9. Dec 18, 1997
  10. Dec 17, 1997
  11. Dec 16, 1997
  12. Dec 15, 1997
  13. Dec 14, 1997
    • pw's avatar
      This set of changes enables the use of forward referenced classes in PCL. · 1af400f8
      pw authored
      The problem was(is) that the wrapper object needed to connect the Lisp
      type system to PCL classes doesn't exist until the forward-referenced-class
      is defined. At that time all the subclasses of it are initialized and
      wrappers attached. In the meantime, the actual forward referenced class is
      an instance of pcl::forward-referenced-class and any subclasses are
      pcl class instances with most slots nil.
      
      The fix herein arranges for UPDATE-LISP-CLASS-LAYOUT to also set
      the lisp:class-name and use (setf lisp:find-class) to connect the
      new layout to the Lisp class system.
      
      An undesired consequence of this is that DEFCLASS can't return a valid
      class object unless all superclasses are defined. This shouldn't be a
      real problem as the classes can't be used in the intermediate state,
      but the HyperSpec says DEFCLASS returns a class object. We return
      a valid class object or NIL.
      1af400f8
    • 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
    • dtc's avatar
      Compiling the initialisation function for the · 55160a83
      dtc authored
      checking-or-caching-function-list in dlisp2.lisp depends on macros in
      boot.lisp and braid.lisp which are not loaded until later. So move
      this code from dlisp2.lisp to a new file dlisp3.lisp so this can be
      compiled later. Leave this init. disabled, although some performance
      improvements have been seen by enabling it.
      55160a83
    • dtc's avatar
      Add declarations to the timing functions to reduce their overhead and · f819122e
      dtc authored
      reduce compiler efficiency notes.
      
      Fix for the operations-per-second macro.
      
      Fix a few package problems; call to find-class needed to use
      pcl:find-class.
      f819122e
  14. Dec 13, 1997
Loading