Exclude lib init from inlinable top level funcs

This commit is contained in:
Justin Ethier 2017-04-18 12:51:30 +00:00
parent b27dab456d
commit 9f26868ef0

View file

@ -218,18 +218,20 @@
;; Identify native Scheme functions that can be inlined ;; Identify native Scheme functions that can be inlined
(define inlinable-scheme-fncs '()) (define inlinable-scheme-fncs '())
(for-each (let ((lib-init-fnc (lib:name->symbol lib-name))) ;; safe to ignore for programs
(lambda (e) (for-each
(when (inlinable-top-level-function? e) (lambda (e)
(set! inlinable-scheme-fncs (when (and (not (equal? (define->var e) lib-init-fnc))
(cons (define->var e) inlinable-scheme-fncs)) (inlinable-top-level-function? e))
;; TESTING, will not work yet (set! inlinable-scheme-fncs
(set! module-globals (cons (define->var e) inlinable-scheme-fncs))
(cons (define-c->inline-var e) module-globals)) ;; TESTING, will not work yet
(prim:add-udf! (define->var e) (define-c->inline-var e)) (set! module-globals
;; END (cons (define-c->inline-var e) module-globals))
)) (prim:add-udf! (define->var e) (define-c->inline-var e))
input-program) ;; END
))
input-program))
(trace:info "---------------- results of inlinable-top-level-function analysis: ") (trace:info "---------------- results of inlinable-top-level-function analysis: ")
(trace:info inlinable-scheme-fncs) (trace:info inlinable-scheme-fncs)