Changeset 14983


Ignore:
Timestamp:
Sep 16, 2011, 10:15:23 AM (8 years ago)
Author:
gb
Message:

NX-ADJUST-SETQ-COUNT: the value of the VAR-REFS slot isn't necessarily
a FIXNUM (when the loop nesting level was overestimated, it sometimes
wasn't a fixnum on 32-bit platforms, causing builds after r14982 to
break), so don't do fixnum arithmetic on it.

NX1-TAGBODY: try to estimate the loop nesting level better. (The VAR-REFS
slot can still overflow MOST-POSITIVE-FIXNUM especially on 32-bit machines.)

NX2-BIGGER-CDR-THAN: the sums of the VAR-REFS slots of several disjoint vars
may not be a fixnum.

Location:
trunk/source/compiler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/compiler/nx1.lisp

    r14982 r14983  
    14291429      (push tag *nx-tags*))
    14301430    (let* ((body nil)
    1431            (*nx-loop-nesting-level* (1+ *nx-loop-nesting-level*)))
     1431           (level *nx-loop-nesting-level*)
     1432           (*nx-loop-nesting-level* level))
     1433           
    14321434      (dolist (form args (setq body (nreverse body)))
    14331435        (push
    14341436         (if (atom form)
    14351437           (let ((info (nx-tag-info form)))
     1438             (when (eql level *nx-loop-nesting-level*)
     1439               (setq *nx-loop-nesting-level* (1+ level)))
    14361440             (%rplaca (%cdr (%cdr (%cdr (%cdr info)))) t)
    14371441             (cons (%nx1-operator tag-label) info))
  • trunk/source/compiler/nx2.lisp

    r14978 r14983  
    2222(defun nx2-bigger-cdr-than (x y)
    2323  (declare (cons x y))
    24   (> (the fixnum (cdr x)) (the fixnum (cdr y))))
     24  (> (cdr x) (cdr y)))
    2525
    2626;;; Return an unordered list of "varsets": each var in a varset can be
  • trunk/source/compiler/nxenv.lisp

    r14982 r14983  
    566566                      by
    567567                      (expt 4 *nx-loop-nesting-level*)))
    568          (new (%i+ nsetqs scaled-by)))
     568         (new (+ (var-refs var) scaled-by)))
    569569    (nx-set-var-root-nsetqs var (1+ nsetqs))
    570570    ;; If a variable is setq'ed from a catch nested within the construct that
Note: See TracChangeset for help on using the changeset viewer.