Changeset 11703


Ignore:
Timestamp:
03/10/09 22:22:52 (14 years ago)
Author:
ehuelsmann
Message:

DOTIMES loop variable efficiency: if the derived type of the limit var is integer,

make the loop var of integer type too (in order to compare them using jvm opcodes,
instead of static calls).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r11652 r11703  
    42534253               (derive-variable-representation limit-variable block)
    42544254               (setf (variable-representation variable)
    4255                      (variable-representation limit-variable))))))))
     4255                     (variable-representation limit-variable))
     4256               (let ((limit-type (variable-derived-type limit-variable)))
     4257                 (when (integer-type-p limit-type)
     4258                   (setf (variable-derived-type variable)
     4259                         (%make-integer-type 0 (integer-type-high limit-type)))))))))))
    42564260
    42574261(defun allocate-variable-register (variable)
     
    65186522                        ((neq (variable-derived-type variable) :none)
    65196523                         (variable-derived-type variable))
     6524                        ((= 0 (variable-writes variable))
     6525                         (derive-type (variable-initform variable)))
    65206526                        (t
    65216527                         t))))))
Note: See TracChangeset for help on using the changeset viewer.