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
(define inlinable-scheme-fncs '())
(for-each
(lambda (e)
(when (inlinable-top-level-function? e)
(set! inlinable-scheme-fncs
(cons (define->var e) inlinable-scheme-fncs))
;; TESTING, will not work yet
(set! module-globals
(cons (define-c->inline-var e) module-globals))
(prim:add-udf! (define->var e) (define-c->inline-var e))
;; END
))
input-program)
(let ((lib-init-fnc (lib:name->symbol lib-name))) ;; safe to ignore for programs
(for-each
(lambda (e)
(when (and (not (equal? (define->var e) lib-init-fnc))
(inlinable-top-level-function? e))
(set! inlinable-scheme-fncs
(cons (define->var e) inlinable-scheme-fncs))
;; TESTING, will not work yet
(set! module-globals
(cons (define-c->inline-var e) module-globals))
(prim:add-udf! (define->var e) (define-c->inline-var e))
;; END
))
input-program))
(trace:info "---------------- results of inlinable-top-level-function analysis: ")
(trace:info inlinable-scheme-fncs)