From 1ff144d7d26762232b29b4c7cfeb0f0ad701c995 Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Fri, 1 Jun 2007 02:57:48 +0000 Subject: [PATCH] 1.0.6.8: improve (SUBSEQ FOO 0 ...) on arrays with elements >= word-size * check for a constant-valued start parameter and pass its value through to the loop-generating machinery. Before we would have compared 'START to 0, which always fails; now we can recognize that case and generate better code. --- src/compiler/seqtran.lisp | 5 ++++- version.lisp-expr | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/seqtran.lisp b/src/compiler/seqtran.lisp index 2699964..c956a07 100644 --- a/src/compiler/seqtran.lisp +++ b/src/compiler/seqtran.lisp @@ -916,7 +916,10 @@ (sb!impl::signal-bounding-indices-bad-error seq start end)))) (let* ((size (- end start)) (result (make-array size :element-type ',element-type))) - ,(maybe-expand-copy-loop-inline 'seq 'start 'result 0 'size element-type) + ,(maybe-expand-copy-loop-inline 'seq (if (constant-lvar-p start) + (lvar-value start) + 'start) + 'result 0 'size element-type) result))))) (deftransform copy-seq ((seq) ((or (simple-unboxed-array (*)) simple-vector)) *) diff --git a/version.lisp-expr b/version.lisp-expr index 7355f83..9947068 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.6.7" +"1.0.6.8" -- 1.7.10.4