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

Diff of /src/compiler/ir1opt.lisp

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

revision 1.87 by rtoy, Fri Dec 5 01:39:27 2008 UTC revision 1.87.16.1 by rtoy, Thu Feb 25 20:34:53 2010 UTC
# Line 18  Line 18 
18  ;;; Written by Rob MacLachlan  ;;; Written by Rob MacLachlan
19  ;;;  ;;;
20  (in-package :c)  (in-package :c)
21    (intl:textdomain "cmucl")
22    
23    
24  ;;;; Interface for obtaining results of constant folding:  ;;;; Interface for obtaining results of constant folding:
# Line 195  Line 196 
196                       (not (eq rtype *empty-type*)))                       (not (eq rtype *empty-type*)))
197              (let ((*compiler-error-context* node))              (let ((*compiler-error-context* node))
198                (compiler-warning                (compiler-warning
199                 "New inferred type ~S conflicts with old type:~                 _"New inferred type ~S conflicts with old type:~
200                  ~%  ~S~%*** Bug?"                  ~%  ~S~%*** Bug?"
201                 (type-specifier rtype) (type-specifier node-type))))                 (type-specifier rtype) (type-specifier node-type))))
202            (setf (node-derived-type node) int)            (setf (node-derived-type node) int)
# Line 787  Line 788 
788             (let ((unused-result (funcall fun node)))             (let ((unused-result (funcall fun node)))
789               (when unused-result               (when unused-result
790                 (let ((*compiler-error-context* node))                 (let ((*compiler-error-context* node))
791                   (compiler-warning "The return value of ~A should not be discarded."                   (compiler-warning _"The return value of ~A should not be discarded."
792                                     (continuation-function-name (basic-combination-fun node))))))))                                     (continuation-function-name (basic-combination-fun node))))))))
793    
794         (let ((fun (function-info-destroyed-constant-args kind)))         (let ((fun (function-info-destroyed-constant-args kind)))
# Line 1115  Line 1116 
1116  ;;;    Just throw the severity and args...  ;;;    Just throw the severity and args...
1117  ;;;  ;;;
1118  (defun give-up (&rest args)  (defun give-up (&rest args)
1119    "This function is used to throw out of an IR1 transform, aborting this    _N"This function is used to throw out of an IR1 transform, aborting this
1120    attempt to transform the call, but admitting the possibility that this or    attempt to transform the call, but admitting the possibility that this or
1121    some other transform will later suceed.  If arguments are supplied, they are    some other transform will later suceed.  If arguments are supplied, they are
1122    format arguments for an efficiency note."    format arguments for an efficiency note."
# Line 1123  Line 1124 
1124    (throw 'give-up (values :failure args)))    (throw 'give-up (values :failure args)))
1125  ;;;  ;;;
1126  (defun abort-transform (&rest args)  (defun abort-transform (&rest args)
1127    "This function is used to throw out of an IR1 transform and force a normal    _N"This function is used to throw out of an IR1 transform and force a normal
1128    call to the function at run time.  No further optimizations will be    call to the function at run time.  No further optimizations will be
1129    attempted."    attempted."
1130    (throw 'give-up (values :aborted args)))    (throw 'give-up (values :aborted args)))
# Line 1133  Line 1134 
1134  ;;; delay-transform  --  Interface  ;;; delay-transform  --  Interface
1135  ;;;  ;;;
1136  (defun delay-transform (node &rest reasons)  (defun delay-transform (node &rest reasons)
1137    "This function is used to throw out of an IR1 transform, and delay the    _N"This function is used to throw out of an IR1 transform, and delay the
1138    transform on the node until later. The reasons specifies when the transform    transform on the node until later. The reasons specifies when the transform
1139    will be later retried. The :optimize reason causes the transform to be    will be later retried. The :optimize reason causes the transform to be
1140    delayed until after the current IR1 optimization pass. The :constraint    delayed until after the current IR1 optimization pass. The :constraint
# Line 1653  Line 1654 
1654          (when total-nvals          (when total-nvals
1655            (when (and min (< total-nvals min))            (when (and min (< total-nvals min))
1656              (compiler-warning              (compiler-warning
1657               "MULTIPLE-VALUE-CALL with ~R values when the function expects ~               _"MULTIPLE-VALUE-CALL with ~R values when the function expects ~
1658               at least ~R."               at least ~R."
1659               total-nvals min)               total-nvals min)
1660              (setf (basic-combination-kind node) :error)              (setf (basic-combination-kind node) :error)
1661              (return-from ir1-optimize-mv-call))              (return-from ir1-optimize-mv-call))
1662            (when (and max (> total-nvals max))            (when (and max (> total-nvals max))
1663              (compiler-warning              (compiler-warning
1664               "MULTIPLE-VALUE-CALL with ~R values when the function expects ~               _"MULTIPLE-VALUE-CALL with ~R values when the function expects ~
1665               at most ~R."               at most ~R."
1666               total-nvals max)               total-nvals max)
1667              (setf (basic-combination-kind node) :error)              (setf (basic-combination-kind node) :error)

Legend:
Removed from v.1.87  
changed lines
  Added in v.1.87.16.1

  ViewVC Help
Powered by ViewVC 1.1.5