X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsrctran.lisp;h=71a2313179db5d7e1c44af25c471f347530d6355;hb=287475f107626c6c8993b955daa9b19b292e69fd;hp=f4b00457b754474d14102057cae23bb450de33c8;hpb=ffdebb412afde6c9cd9f433c8537519135d648c2;p=sbcl.git diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index f4b0045..71a2313 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -2537,7 +2537,7 @@ (cut-node (node &aux did-something) (when (and (not (block-delete-p (node-block node))) (combination-p node) - (fun-info-p (basic-combination-kind node))) + (eq (basic-combination-kind node) :known)) (let* ((fun-ref (lvar-use (combination-fun node))) (fun-name (leaf-source-name (ref-leaf fun-ref))) (modular-fun (find-modular-version fun-name width))) @@ -3589,6 +3589,11 @@ ;;; code has been written from scratch following Chapter 7 of ;;; _Introduction to Algorithms_ by Corman, Rivest, and Shamir. (define-source-transform sb!impl::sort-vector (vector start end predicate key) + ;; Like CMU CL, we use HEAPSORT. However, other than that, this code + ;; isn't really related to the CMU CL code, since instead of trying + ;; to generalize the CMU CL code to allow START and END values, this + ;; code has been written from scratch following Chapter 7 of + ;; _Introduction to Algorithms_ by Corman, Rivest, and Shamir. `(macrolet ((%index (x) `(truly-the index ,x)) (%parent (i) `(ash ,i -1)) (%left (i) `(%index (ash ,i 1)))