Skip to content
Snippets Groups Projects
  1. May 14, 2004
    • rtoy's avatar
      Add support for storing the symbol hash into a slot in the symbol · 4d7bf80f
      rtoy authored
      itself.  Only for sparc currently.
      
      Doesn't lazily compute the symbol hash yet.  Simple test shows a 5%
      increase in compilation speed, despite making make-symbol
      significantly slower.
      
      
      	* src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash
      	slot instead of computing the hash value.
      
      	* src/compiler/generic/new-genesis.lisp (allocate-symbol): Write
      	out the sxhash value of the symbol into the symbol-hash slot.
      
      	* src/compiler/globaldb.lisp (info-hash): Update to use the symbol
      	hash instead of computing the sxhash.
      
      	* src/code/symbol.lisp (make-symbol): Compute the symbol hash when
      	creating the symbol.
      
      	* src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract
      	out the symbol hash from a symbol.
      
      	* src/compiler/generic/objdef.lisp: Rename the unused slot to
      	hash, so we can make it the symbol hash.
      4d7bf80f
  2. May 13, 2004
    • rtoy's avatar
      o Use the gtemp register for LOAD-CONSTANT. This allows the · 751d6114
      rtoy authored
        CLOS/defmethod test in cl-bench to run.  (I'm waiting for bug
        reports before adding this everywhere.)
      o Add a temp to the MOVE-ARGUMENT vop so we can store things on the
        stack with large offsets.
      751d6114
    • rtoy's avatar
      o Add some comments on register usage · 3111d63c
      rtoy authored
      o Add a global temp register, gtemp, for use in move-functions when a
        temp register is needed.  Currently %g7, but could be changed to a5
        (aka %l5) if necessary, which some more straightforward work.
      3111d63c
  3. May 11, 2004
    • rtoy's avatar
      From Lynn Quam: · 836299e0
      rtoy authored
      	adds the mark_bit slot to weak-pointers and eliminates the
      	n-squared performance problem with scav_weak_pointer.
      836299e0
  4. May 10, 2004
  5. May 06, 2004
  6. May 05, 2004
  7. Apr 28, 2004
    • rtoy's avatar
      This causes an error: · 9eab32ea
      rtoy authored
      (macrolet ((%x () t))
          (declare (optimize))
          (declare (notinline identity)))
      
      Because the macrolet IR1 translator puts a list onto the FVARS
      arg in PROCESS-INLINE-DECLARATION, which is not a LEAF.
      
      This patch works around this by checking to see if the element of
      FVARS is a LEAF before getting the LEAF-NAME.
      
      There is probably a better solution.
      9eab32ea
  8. Apr 27, 2004
    • emarsden's avatar
      · 9535468e
      emarsden authored
        - fix lambda-list processing: symbols with names like &foo should be
          handled like normal arguments, if they are not present in
          LAMBDA-LIST-KEYWORDS. Issue a STYLE-WARNING instead of signaling an
          error.
      9535468e
  9. Apr 23, 2004
  10. Apr 19, 2004
  11. Apr 16, 2004
  12. Apr 13, 2004
  13. Apr 08, 2004
  14. Apr 07, 2004
  15. Apr 06, 2004
    • rtoy's avatar
      Add support for source location recording, from Helmut Eller on · f4f6325e
      rtoy authored
      cmucl-imp:
      
          The patch below adds a somewhat general mechanism to the get the
          "current location".  So every macro that wants to record the
          source location, can insert a call to SOURCE-LOCATION in the
          generated code and safe the result in a appropriate place.
          SOURCE-LOCATION is a compiler-macro and returns a quoted struct
          with the source info.
      
          The patch adds the definition for SOURCE-LOCATION some
          modifications for the defclass, defgeneric and defmethod macros.
          Classes, generic functions and methods have already a "source"
          slot and the result of SOURCE-LOCATION is just stored into that
          slot.  (The source slot contains currently only the *loadpath*,
          which is is not very useful, if the fasl file is in a different
          directory than the source file.)
      f4f6325e
    • rtoy's avatar
      Add WITH-UNBOUNDED-INTERVAL-ON-ERROR macro to catch errors · 7e328579
      rtoy authored
      during interval arithmetic and returns a doubly unbounded INTERVAL.  Use this
      in the INTERVAL-* routines.
      
      This is intended to fix the ansi-test failure misc.89.  The approach is
      rather heavy-handed, and a better solution is desirable.
      7e328579
    • rtoy's avatar
      debug-dump.lisp · 7ef21c40
      rtoy authored
       revision 1.10.1.3
       date: 90/04/13 12:11:22;  author: ram;  state: Exp;  lines added/del: 8/3
       Changed block dumping to notice when the successor is in a different
       environment (due to a TR call).
       ----------------------------
       revision 1.10.1.2
       date: 90/04/08 17:54:38;  author: ram;  state: Exp;  lines added/del: 2/2
       old-cont => old-fp
       ----------------------------
       revision 1.10.1.1
       date: 90/03/27 12:12:06;  author: ram;  state: Exp;  lines added/del: 1/0
       Added support for file comments.
      7ef21c40
  16. Apr 01, 2004
    • rtoy's avatar
      Lynn Quam on cmucl-imp on 2004-03-30 says · b6353a20
      rtoy authored
      (defun foo (f d)
        (declare (type (simple-array single-float (*)) f)
                 (type (simple-array double-float (*)) d))
        (setf (aref f 0) (aref d 0)))
      
      doesn't produce any warnings and generates completely bogus code.
      
      Don't know what the real answer solution is, but turning off the
      assert-continuation-type for a single-use continuation fixes this,
      which is what 18a used to do.  There are probably other bugs that this
      hides.
      b6353a20
  17. Mar 29, 2004
  18. Mar 24, 2004
    • emarsden's avatar
      · 39828da8
      emarsden authored
       - component names may be non-pretty-printable
      39828da8
  19. Jan 19, 2004
    • toy's avatar
      o Fix INTERVAL-RANGE-INFO some more. Put back the previous change · 335f876a
      toy authored
        (that we backed out) so (abs (the (double-float 0d0) x)) produces
        the correct result.
      o Add a kludge to INTERVAL-RANGE-INFO to handle the case of an
        interval -0.0 to 0.0 specially.  INTERVAL-RANGE-INFO should return
        NIL instead of '- for this.
      o The fixes to INTERVAL-RANGE-INFO tickle a bug in INTERVAL-SPLIT
        where we weren't correctly splitting the the interval [-0.0, 0d0]
        into 2 intervals correctly.  This was causing the compiler to loop
        forever deriving things.
      
      This is all a bit kludgy.  Dealing with signed-zeroes is a pain.
      335f876a
  20. Jan 17, 2004
  21. Jan 16, 2004
  22. Jan 15, 2004
    • toy's avatar
      Some micro-optimizations · 88ca1799
      toy authored
      o MOVE-FROM-SIGNED uses a shorter sequence of instructions with fewer
        branch instructions to figure out if the number is a fixnum.
      o MOVE-FROM-UNSIGNED uses shorter sequence of instructions to set the
        bignum correctly.
      88ca1799
  23. Jan 10, 2004
  24. Jan 09, 2004
    • toy's avatar
      Update to sparc gencgc so that alloc-tn holds the · 723055bb
      toy authored
      current-region-free-pointer.
      
      Cross compile may be needed, but I'm not sure.  I only used
      cross-compiling to do this change.
      
      sparc/macros.lisp:
      o Update the allocation macro appropriately for alloc-tn holding the
        current-region-free-pointer.
      
      lisp/gencgc.c:
      o Define macros for setting and getting *current-region-free-oointer*
        and *current-region-end-addr* so sparc can use alloc-tn.
        *current-region-free-pointer* isn't used anymore, but is still a
        static symbol.  It's been replaced by alloc-tn.
      o On sparc, set_alloc_pointer doesn't need to do anything anymore.
      o Don't need to call update_dynamic_space_free_pointer anymore.
      o The assertion that *current-region-free-pointer* is a fixnum is no
        longer valid on sparc because that is alloc-tn which contains the
        pseudo-atomic bits.
      
      lisp/sparc-arch.c:
      o The allocation trap instruction is now preceeded by a SUB
        instruction.  Handle that correctly.  Keep support for the OR
        instruction for now, but should be removed.
      o Set alloc-tn from current_dynamic_space_free_pointer.
      723055bb
    • toy's avatar
      Put the space-start values into internals.h so we can refer to them. Then, · 7cbaa2fa
      toy authored
      there's only one place (Lisp) to maintain the space-start values.
      
      new-genesis.lisp:
      o Any constants ending with "-SPACE-START" are dumped to internals.h
      
      sparc/parms.lisp:
      o Make target-read-only-space-start, target-static-space-start,
        target-dynamic-space-start, and target-foreign-linkage-space-start
        defconstants instead of defparameters so that internals.h will have
        the values for use in C code.
      7cbaa2fa
Loading