Check for inlinable functions after prim conv

At this point there are more opportunities for inlining.
This commit is contained in:
Justin Ethier 2017-04-24 18:57:52 -04:00
parent 24f9651232
commit 0dafd88ed3

View file

@ -216,6 +216,15 @@
(trace:info "---------------- after alpha conversion:")
(trace:info input-program) ;pretty-print
;; Convert some function calls to primitives, if possible
(set! input-program
(map
(lambda (expr)
(prim-convert expr))
input-program))
(trace:info "---------------- after func->primitive conversion:")
(trace:info input-program) ;pretty-print
;; Identify native Scheme functions that can be inlined
(define inlinable-scheme-fncs '())
(let ((lib-init-fnc (lib:name->symbol lib-name))) ;; safe to ignore for programs
@ -236,15 +245,6 @@
(trace:info "---------------- results of inlinable-top-level-function analysis: ")
(trace:info inlinable-scheme-fncs)
;; Convert some function calls to primitives, if possible
(set! input-program
(map
(lambda (expr)
(prim-convert expr))
input-program))
(trace:info "---------------- after func->primitive conversion:")
(trace:info input-program) ;pretty-print
(let ((cps (map
(lambda (expr)
(cps-convert expr))