summaryrefslogtreecommitdiff
path: root/module/language/tree-il/optimize.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/tree-il/optimize.scm')
-rw-r--r--module/language/tree-il/optimize.scm15
1 files changed, 8 insertions, 7 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm
index 57755ea5e..c8c23c636 100644
--- a/module/language/tree-il/optimize.scm
+++ b/module/language/tree-il/optimize.scm
@@ -23,7 +23,7 @@
#:use-module (system base syntax)
#:use-module (language tree-il)
#:use-module (language tree-il inline)
- #:export (optimize!))
+ #:export (optimize! add-interesting-primitive!))
(define (env-module e)
(if e (car e) (current-module)))
@@ -65,12 +65,13 @@
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr))
-(define *interesting-primitive-vars*
- (let ((h (make-hash-table)))
- (for-each (lambda (x)
- (hashq-set! h (module-variable the-root-module x) x))
- *interesting-primitive-names*)
- h))
+(define (add-interesting-primitive! name)
+ (hashq-set! *interesting-primitive-vars*
+ (module-variable (current-module) name) name))
+
+(define *interesting-primitive-vars* (make-hash-table))
+
+(for-each add-interesting-primitive! *interesting-primitive-names*)
(define (resolve-primitives! x mod)
(post-order!