/[cmucl]/src/compiler/locall.lisp
ViewVC logotype

Diff of /src/compiler/locall.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by ram, Wed Feb 20 14:58:29 1991 UTC revision 1.16 by ram, Sun Mar 10 18:35:33 1991 UTC
# Line 297  Line 297 
297  ;;;  ;;;
298  (defun convert-call-if-possible (ref call)  (defun convert-call-if-possible (ref call)
299    (declare (type ref ref) (type basic-combination call))    (declare (type ref ref) (type basic-combination call))
300    (let ((fun (let ((fun (ref-leaf ref)))    (unless (eq (basic-combination-kind call) :local)
301                 (if (external-entry-point-p fun)      (let ((fun (let ((fun (ref-leaf ref)))
302                     (functional-entry-function fun)                   (if (external-entry-point-p fun)
303                     fun)))                       (functional-entry-function fun)
304          (*compiler-error-context* call))                       fun)))
305        (cond ((eq (basic-combination-kind call) :local))            (*compiler-error-context* call))
306              ((mv-combination-p call)        (assert (member (functional-kind fun) '(nil :escape :cleanup :optional)))
307          (cond ((mv-combination-p call)
308               (convert-mv-call ref call fun))               (convert-mv-call ref call fun))
309              ((lambda-p fun)              ((lambda-p fun)
310               (convert-lambda-call ref call fun))               (convert-lambda-call ref call fun))
311              (t              (t
312               (convert-hairy-call ref call fun))))               (convert-hairy-call ref call fun)))))
313    (undefined-value))    (undefined-value))
314    
315    
# Line 463  Line 464 
464              (ecase (arg-info-kind info)              (ecase (arg-info-kind info)
465                (:keyword                (:keyword
466                 (key-vars var))                 (key-vars var))
467                (:rest :optional)))))                ((:rest :optional))))))
468    
469        (dotimes (i max)        (dotimes (i max)
470          (temps (gensym "FIXED-ARG-TEMP-")))          (temps (gensym "FIXED-ARG-TEMP-")))
# Line 683  Line 684 
684    (insert-let-body fun call)    (insert-let-body fun call)
685    (merge-lets fun call)    (merge-lets fun call)
686    (move-return-uses fun call)    (move-return-uses fun call)
687      (maybe-remove-free-function fun)
   (let* ((fun (or (lambda-optional-dispatch fun) fun))  
          (entry (gethash (leaf-name fun) *free-functions*)))  
     (when (eq entry fun)  
       (remhash (leaf-name fun) *free-functions*)))  
   
688    (dolist (arg (basic-combination-args call))    (dolist (arg (basic-combination-args call))
689      (when arg      (when arg
690        (reoptimize-continuation arg)))        (reoptimize-continuation arg)))

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.5