207 |
(if (eq (car fd) 'call-local) |
(if (eq (car fd) 'call-local) |
208 |
(let* ((info (make-info :sp-change t)) |
(let* ((info (make-info :sp-change t)) |
209 |
(forms (c1args args info))) |
(forms (c1args args info))) |
210 |
|
;; fun-info, CM 20031008 accumulate local function info, particularly changed-vars, |
211 |
|
;; and pass upwards to call-local and call-global to prevent certain inlining in inline-args |
212 |
|
;; via args-info-changed-vars |
213 |
|
;; |
214 |
|
;; FIXME find out where fun-info can be nil |
215 |
|
(when (fun-info (caddr fd)) |
216 |
|
(add-info info (fun-info (caddr fd)))) |
217 |
(let ((return-type (get-local-return-type (caddr fd)))) |
(let ((return-type (get-local-return-type (caddr fd)))) |
218 |
(when return-type (setf (info-type info) return-type))) |
(when return-type (setf (info-type info) return-type))) |
219 |
(let ((arg-types (get-local-arg-types (caddr fd)))) |
(let ((arg-types (get-local-arg-types (caddr fd)))) |
272 |
(t (let* ((info (make-info |
(t (let* ((info (make-info |
273 |
:sp-change (null (get fname 'no-sp-change)))) |
:sp-change (null (get fname 'no-sp-change)))) |
274 |
(forms (c1args args info))) |
(forms (c1args args info))) |
275 |
|
;; fun-info, CM 20031008 accumulate local function info, particularly changed-vars, |
276 |
|
;; and pass upwards to call-local and call-global to prevent certain inlining in inline-args |
277 |
|
;; via args-info-changed-vars |
278 |
|
;; |
279 |
|
;; FIXME find out where fun-info can be nil |
280 |
|
(do ((form forms (cdr form))) ((endp form)) |
281 |
|
(when (cadar form) |
282 |
|
(add-info info (cadar form)))) |
283 |
(let ((return-type (get-return-type fname))) |
(let ((return-type (get-return-type fname))) |
284 |
(when return-type |
(when return-type |
285 |
(if (equal return-type '(*)) |
(if (equal return-type '(*)) |