This commit is contained in:
Justin Ethier 2016-05-11 22:18:28 -04:00
parent a6cc263237
commit d36f9be25b
2 changed files with 19 additions and 12 deletions

View file

@ -238,12 +238,17 @@
;; phase 5 - common subexpression elimination
;; TODO: re-run phases again until program is stable (less than n opts made, more than r rounds performed, etc)
;; END CPS optimization
(set! input-program
(map
cps-optimize-01
input-program))
(trace:info "---------------- after cps optimizations:")
(trace:info input-program) ;pretty-print
; (analyze-cps input-program)
; (trace:info "---------------- cps analysis db:")
; (trace:info (adb:get-db))
; (set! input-program
; (map
; cps-optimize-01
; input-program))
; (trace:info "---------------- after cps optimizations:")
; (trace:info input-program) ;pretty-print
(set! input-program
(map

View file

@ -30,6 +30,7 @@
adb:get
adb:get/default
adb:set!
adb:get-db
;; Variables
adb:make-var
%adb:make-var
@ -48,6 +49,7 @@
)
(begin
(define *adb* (make-hash-table))
(define (adb:get-db) *adb*)
;(define *adb* #f) ;(make-hash-table))
;(define (adb:init!)
; ;(set! *adb* (make-hash-table)))
@ -103,15 +105,15 @@
(adbv:set-ref-by! var (cons lid (adbv:ref-by var)))
))
((define? exp)
(let ((var (adb:get/default exp (adb:make-var))))
(let ((var (adb:get/default (define->var exp) (adb:make-var))))
;; TODO:
'TODO
))
(analyze (define->exp exp) lid)))
((set!? exp)
(let ((var (adb:get/default exp (adb:make-var))))
(let ((var (adb:get/default (set!->var exp) (adb:make-var))))
;; TODO:
'TODO
))
(analyze (set!->exp exp) lid)))
((if? exp) `(if ,(analyze (if->condition exp) lid)
,(analyze (if->then exp) lid)
,(analyze (if->else exp) lid)))