gcl.git - GNU Common Lisp

index : gcl.git
GNU Common Lisp
summary refs log tree commit diff
diff options
context:
space:
mode:
authorCamm Maguire <camm@debian.org>2014年09月19日 13:38:55 -0400
committerCamm Maguire <camm@debian.org>2014年09月19日 13:38:55 -0400
commit42de72426235d65a6897ed861166fe6ca1ddc169 (patch)
tree19f9cc3952422fec609cc441ad693455af68f759
parent5454f0b302782fb78f0418a84d669080a4a2f031 (diff)
downloadgcl-42de72426235d65a6897ed861166fe6ca1ddc169.tar.gz
some reverse -> nreverse optimizations in compiler
Diffstat
-rwxr-xr-xgcl/cmpnew/gcl_cmpeval.lsp 8
-rwxr-xr-xgcl/cmpnew/gcl_cmpinline.lsp 6
-rwxr-xr-xgcl/cmpnew/gcl_cmplam.lsp 18
-rwxr-xr-xgcl/cmpnew/gcl_cmplet.lsp 13
-rwxr-xr-xgcl/cmpnew/gcl_cmpmulti.lsp 9
-rwxr-xr-xgcl/cmpnew/gcl_cmptag.lsp 4
-rwxr-xr-xgcl/cmpnew/gcl_cmptop.lsp 6
-rwxr-xr-xgcl/cmpnew/gcl_cmpvar.lsp 4
-rwxr-xr-xgcl/cmpnew/gcl_cmpwt.lsp 4
-rwxr-xr-xgcl/lsp/gcl_evalmacros.lsp 12
10 files changed, 43 insertions, 41 deletions
diff --git a/gcl/cmpnew/gcl_cmpeval.lsp b/gcl/cmpnew/gcl_cmpeval.lsp
index 0b3a79207..bfefe9247 100755
--- a/gcl/cmpnew/gcl_cmpeval.lsp
+++ b/gcl/cmpnew/gcl_cmpeval.lsp
@@ -171,7 +171,7 @@
(format t "~%;;~s~% " sym)
(sloop::sloop for u in '(inline-always inline-safe inline-unsafe)
do (sloop::sloop
- for w in (reverse (remove-duplicates
+ for w in (nreverse (remove-duplicates
(copy-list (get sym u))
:test 'equal))
do (output-opt w sym u))))))
@@ -235,7 +235,7 @@
fl)
(pop arg-types)
(pop args))))
- (setq forms (reverse fl)))))
+ (setq forms (nreverse fl)))))
(list 'call-local info (cddr fd) forms))
(c1expr (cmp-expand-macro fd fname args))))
((and (setq fd (get fname 'co1))
@@ -291,7 +291,7 @@
(fl1 nil)
(al args (cdr al)))
((endp fl)
- (setq forms (reverse fl1)))
+ (setq forms (nreverse fl1)))
(cond ((endp arg-types) (push (car fl) fl1))
(t (push (and-form-type (car arg-types)
(car fl)
@@ -439,7 +439,7 @@
(push form fl)
(add-info info (cadr form)))
(setf (info-type info) (info-type (cadar fl)))
- (list 'progn info (reverse fl))
+ (list 'progn info (nreverse fl))
)))
)
diff --git a/gcl/cmpnew/gcl_cmpinline.lsp b/gcl/cmpnew/gcl_cmpinline.lsp
index cb49c92d9..21e9257eb 100755
--- a/gcl/cmpnew/gcl_cmpinline.lsp
+++ b/gcl/cmpnew/gcl_cmpinline.lsp
@@ -256,7 +256,7 @@
(defun inline-args (forms types &optional fun &aux (locs nil) ii)
(do ((forms forms (cdr forms))
(types types (cdr types)))
- ((endp forms) (reverse locs))
+ ((endp forms) (nreverse locs))
(declare (object forms types))
(let ((form (car forms))
(type (car types)))
@@ -405,7 +405,7 @@
(do ((l locs (cdr l))
(n 0 (1+ n))
(locs1 nil))
- ((endp l) (setq locs (reverse locs1)))
+ ((endp l) (setq locs (nreverse locs1)))
(declare (fixnum n) (object l))
(if (member n saves)
(let* ((loc1 (car l)) (loc loc1) (coersion nil))
@@ -513,7 +513,7 @@
(t (return nil)))
(pop types)))
(type>= (cadr inline-info) return-type))
- (cons (reverse rts) (cdr inline-info))
+ (cons (nreverse rts) (cdr inline-info))
nil)
)
diff --git a/gcl/cmpnew/gcl_cmplam.lsp b/gcl/cmpnew/gcl_cmplam.lsp
index 6a70bd64e..29d27bf40 100755
--- a/gcl/cmpnew/gcl_cmplam.lsp
+++ b/gcl/cmpnew/gcl_cmplam.lsp
@@ -310,11 +310,11 @@
(go Laux1)
)
)
- (setq requireds (reverse requireds)
- optionals (reverse optionals)
- keywords (reverse keywords)
- aux-vars (reverse aux-vars)
- aux-inits (reverse aux-inits))
+ (setq requireds (nreverse requireds)
+ optionals (nreverse optionals)
+ keywords (nreverse keywords)
+ aux-vars (nreverse aux-vars)
+ aux-inits (nreverse aux-inits))
(check-vdecl vnames ts is)
@@ -491,7 +491,7 @@
(let ((label (next-label)))
(wt-nl) (wt-go label)
- (setq labels (reverse labels))
+ (setq labels (nreverse labels))
;;; Bind unspecified optional parameters.
(dolist** (opt optionals)
@@ -615,7 +615,7 @@
(when (caddar opts) (c2bind-loc (caddar opts) t))
(when (cdr opts) (wt-nl "vs_base++;"))))
- (setq labels (reverse labels))
+ (setq labels (nreverse labels))
)
(reset-top)
@@ -755,8 +755,8 @@
(when vl
(when restp (dm-bad-key '&rest))
(setq rest (c1dm-v vl ss is ts)))
- (values (list (reverse requireds) (reverse optionals) rest key-flag
- (reverse keywords) allow-other-keys (reverse auxs))
+ (values (list (nreverse requireds) (nreverse optionals) rest key-flag
+ (nreverse keywords) allow-other-keys (nreverse auxs))
ppn)
)
(let ((v (car vl)))
diff --git a/gcl/cmpnew/gcl_cmplet.lsp b/gcl/cmpnew/gcl_cmplet.lsp
index c1c520b3f..0d244c359 100755
--- a/gcl/cmpnew/gcl_cmplet.lsp
+++ b/gcl/cmpnew/gcl_cmplet.lsp
@@ -56,7 +56,8 @@
(cadr x)))
forms)))))
- (dolist* (v (reverse vars)) (push v *vars*))
+ (setq *vars* (append vars *vars*))
+; (dolist* (v (reverse vars)) (push v *vars*))
(check-vdecl vnames ts is)
@@ -69,7 +70,7 @@
(or (eql setjmps *setjmps*) (setf (info-volatile info) t))
- (list 'let info (reverse vars) (reverse forms) body)
+ (list 'let info (nreverse vars) (nreverse forms) body)
)
(defun c2let (vars forms body
@@ -145,10 +146,10 @@
(setq block-p (write-block-open vars))
- (dolist* (binding (reverse initials))
+ (dolist* (binding (nreverse initials))
(let ((*value-to-go* (second binding)))
(c2expr* (third binding))))
- (dolist* (binding (reverse bindings))
+ (dolist* (binding (nreverse bindings))
(if (cdr binding)
(c2bind-loc (car binding) (cadr binding))
(c2bind (car binding))))
@@ -191,8 +192,8 @@
(add-info info (cadr body))
(setf (info-type info) (info-type (cadr body)))
(dolist** (var vars) (check-vref var))
-(or (eql setjmps *setjmps*) (setf (info-volatile info) t))
- (list 'let* info (reverse vars) (reverse forms) body)
+ (or (eql setjmps *setjmps*) (setf (info-volatile info) t))
+ (list 'let* info (nreverse vars) (nreverse forms) body)
)
(defun c2let* (vars forms body
diff --git a/gcl/cmpnew/gcl_cmpmulti.lsp b/gcl/cmpnew/gcl_cmpmulti.lsp
index 00c9cd8c6..5c9c08887 100755
--- a/gcl/cmpnew/gcl_cmpmulti.lsp
+++ b/gcl/cmpnew/gcl_cmpmulti.lsp
@@ -157,7 +157,7 @@
(push var vrefs)
(push-changed (car var) info)
)
- (list 'multiple-value-setq info (reverse vrefs) (c1expr* (cadr args) info))
+ (list 'multiple-value-setq info (nreverse vrefs) (c1expr* (cadr args) info))
)
@@ -215,7 +215,8 @@
(setq init-form (c1expr* (cadr args) info))
- (dolist* (v (reverse vars)) (push v *vars*))
+ (setq *vars* (append vars *vars*))
+; (dolist* (v (reverse vars)) (push v *vars*))
(check-vdecl vnames ts is)
@@ -226,7 +227,7 @@
(dolist** (var vars) (check-vref var))
- (list 'multiple-value-bind info (reverse vars) init-form body)
+ (list 'multiple-value-bind info (nreverse vars) init-form body)
)
@@ -272,7 +273,7 @@
(let ((label (next-label)))
(wt-nl) (wt-go label)
- (setq labels (reverse labels))
+ (setq labels (nreverse labels))
(dolist** (v vars)
(wt-label (car labels))
diff --git a/gcl/cmpnew/gcl_cmptag.lsp b/gcl/cmpnew/gcl_cmptag.lsp
index 8f69d6000..58ba24739 100755
--- a/gcl/cmpnew/gcl_cmptag.lsp
+++ b/gcl/cmpnew/gcl_cmptag.lsp
@@ -120,7 +120,7 @@
(body1 nil) (ref nil) (ref-clb nil) (ref-ccb nil))
((endp l)
(if (or ref-ccb ref-clb ref)
- (progn (setq body1 (reverse body1))
+ (progn (setq body1 (nreverse body1))
;; If ref-ccb is set, we will cons up the environment, hence
;; all tags which had level boundary references must be changed
;; to ccb references. FIXME -- review this logic carefully
@@ -134,7 +134,7 @@
(t
(add-loop-registers body1 )))
(list 'tagbody info ref-clb ref-ccb body1))
- (list 'progn info (reverse (cons (c1nil) body1)))))
+ (list 'progn info (nreverse (cons (c1nil) body1)))))
(declare (object l ref ref-clb ref-ccb))
(if (typep (car l) 'tag)
(cond ((tag-ref-ccb (car l))
diff --git a/gcl/cmpnew/gcl_cmptop.lsp b/gcl/cmpnew/gcl_cmptop.lsp
index ad3abf566..6341117fd 100755
--- a/gcl/cmpnew/gcl_cmptop.lsp
+++ b/gcl/cmpnew/gcl_cmptop.lsp
@@ -293,7 +293,7 @@
*current-form* *vcs-used*)
(declare (special *current-form* *vcs-used*))
- (setq *top-level-forms* (reverse *top-level-forms*))
+ (setq *top-level-forms* (nreverse *top-level-forms*))
;;; Initialization function.
(wt-nl1 "void init_" name "(){"
@@ -1502,7 +1502,7 @@
body))
(t (cmperr "The defCfun body ~s is illegal." s))))
(t (cmperr "The defCfun body ~s is illegal." s))))
- (push (list 'defcfun (car args) (cadr args) (reverse body))
+ (push (list 'defcfun (car args) (cadr args) (nreverse body))
*top-level-forms*)
)
@@ -1662,7 +1662,7 @@
(defun t1defla (args) (declare (ignore args)))
(defun parse-cvspecs (x &aux (cvspecs nil))
- (dolist** (cvs x (reverse cvspecs))
+ (dolist** (cvs x (nreverse cvspecs))
(cond ((symbolp cvs)
(push (list 'object (string-downcase (symbol-name cvs))) cvspecs))
((stringp cvs) (push (list 'object cvs) cvspecs))
diff --git a/gcl/cmpnew/gcl_cmpvar.lsp b/gcl/cmpnew/gcl_cmpvar.lsp
index f491dddd8..6ab0e24b1 100755
--- a/gcl/cmpnew/gcl_cmpvar.lsp
+++ b/gcl/cmpnew/gcl_cmpvar.lsp
@@ -341,7 +341,7 @@
(t
(do ((pairs args (cddr pairs))
(forms nil))
- ((endp pairs) (c1expr (cons 'progn (reverse forms))))
+ ((endp pairs) (c1expr (cons 'progn (nreverse forms))))
(declare (object pairs))
(cmpck (endp (cdr pairs))
"No form was given for the value of ~s." (car pairs))
@@ -437,7 +437,7 @@
(push-changed (car vref) info)
(add-info info (cadar forms)))
)
- (list 'psetq info (reverse vrefs) (reverse forms))
+ (list 'psetq info (nreverse vrefs) (nreverse forms))
)
(defun c2psetq (vrefs forms &aux (*vs* *vs*) (saves nil) (blocks 0))
diff --git a/gcl/cmpnew/gcl_cmpwt.lsp b/gcl/cmpnew/gcl_cmpwt.lsp
index 09549387a..1c2d6ee79 100755
--- a/gcl/cmpnew/gcl_cmpwt.lsp
+++ b/gcl/cmpnew/gcl_cmpwt.lsp
@@ -203,13 +203,13 @@
((stringp (car forms))
(dolist** (form (cdr forms)
(list* 'progn `(princ ,(concatenate 'string "
-" (car forms)) *compiler-output1*) (reverse (cons nil fl))))
+" (car forms)) *compiler-output1*) (nreverse (cons nil fl))))
(if (stringp form)
(push `(princ ,form *compiler-output1*) fl)
(push `(wt1 ,form) fl))))
(t (dolist** (form forms
(list* 'progn '(princ "
-" *compiler-output1*) (reverse (cons nil fl))))
+" *compiler-output1*) (nreverse (cons nil fl))))
(if (stringp form)
(push `(princ ,form *compiler-output1*) fl)
(push `(wt1 ,form) fl))))))
diff --git a/gcl/lsp/gcl_evalmacros.lsp b/gcl/lsp/gcl_evalmacros.lsp
index 83789d3d9..385218686 100755
--- a/gcl/lsp/gcl_evalmacros.lsp
+++ b/gcl/lsp/gcl_evalmacros.lsp
@@ -136,7 +136,7 @@
(do ((l args (cddr l))
(forms nil)
(bindings nil))
- ((endp l) (list* 'let* (reverse bindings) (reverse (cons nil forms))))
+ ((endp l) (list* 'let* (nreverse bindings) (nreverse (cons nil forms))))
(declare (object l))
(let ((sym (gensym)))
(push (list sym (cadr l)) bindings)
@@ -218,7 +218,7 @@
(sym (gensym))
(bind nil)
(n 0 (1+ n)))
- ((endp vl) `(let* ((,sym (multiple-value-list ,form)) ,@(reverse bind))
+ ((endp vl) `(let* ((,sym (multiple-value-list ,form)) ,@(nreverse bind))
,@body))
(declare (fixnum n) (object vl))
(push `(,(car vl) (nth ,n ,sym)) bind))
@@ -240,12 +240,12 @@
(push (car c) step)
(push (caddr c) step)))
`(block nil
- (let ,(reverse vl)
+ (let ,(nreverse vl)
,@decl
(tagbody
,label (if ,test (return (progn ,@result)))
(tagbody ,@body)
- (psetq ,@(reverse step))
+ (psetq ,@(nreverse step))
(go ,label)))))
(defmacro do* (control (test . result) &rest body
@@ -264,12 +264,12 @@
(push (car c) step)
(push (caddr c) step)))
`(block nil
- (let* ,(reverse vl)
+ (let* ,(nreverse vl)
,@decl
(tagbody
,label (if ,test (return (progn ,@result)))
(tagbody ,@body)
- (setq ,@(reverse step))
+ (setq ,@(nreverse step))
(go ,label))))
)
generated by cgit v1.2.3 (git 2.25.1) at 2025年09月05日 13:10:34 +0000

AltStyle によって変換されたページ (->オリジナル) /