This commit is contained in:
Justin Ethier 2019-02-12 14:01:13 -05:00
parent e060247d8a
commit 3bbd89ce2c
2 changed files with 11 additions and 8 deletions

View file

@ -113,7 +113,7 @@
)
;; Transformation to memoize simple recursive numeric functions
(define (opt:memoize-pure-fncs sexp)
(define (opt:memoize-pure-fncs sexp module-globals)
(define memo-tbl '())
;; exp - S-expression to scan
@ -321,12 +321,13 @@
))
(let ((ast (ast:sexp->ast sexp)))
(let ((ast (ast:sexp->ast sexp))
(module-globals (list)))
(analyze-cps ast)
;(analyze:find-recursive-calls ast)
(pretty-print
(ast:ast->pp-sexp
(opt:memoize-pure-fncs ast))))
(opt:memoize-pure-fncs ast module-globals))))
;; (pretty-print
;; (ast:ast->pp-sexp

View file

@ -1700,7 +1700,7 @@
;; TODO: re-run phases again until program is stable (less than n opts made, more than r rounds performed, etc)
;; END notes
(define (optimize-cps ast)
(define (optimize-cps ast . options)
(adb:clear!)
(analyze-cps ast)
(trace:info "---------------- cps analysis db:")
@ -1715,10 +1715,12 @@
;; (program size? heuristics? what else??)
)
;; TODO: when memo flag (need to pass in) is enabled
(when #t
(set! new-ast (opt:memoize-pure-fncs new-ast)))
;; Memoize pure functions, if instructed
(let ((module-globals (assoc 'module-globals options)))
(when (and module-globals #t ;; TODO: (assoc 'memoize-pure-functions options)
)
(set! new-ast (opt:memoize-pure-fncs new-ast module-globals)))
)
new-ast
)
)