diff options
Diffstat (limited to 'module/language/cps/compile-bytecode.scm')
-rw-r--r-- | module/language/cps/compile-bytecode.scm | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/module/language/cps/compile-bytecode.scm b/module/language/cps/compile-bytecode.scm index 839313870..f7c8fbb5e 100644 --- a/module/language/cps/compile-bytecode.scm +++ b/module/language/cps/compile-bytecode.scm @@ -81,8 +81,9 @@ (_ forwarding-labels))) cps empty-intmap))) -(define (compile-function cps asm) - (let* ((allocation (allocate-slots cps)) +(define (compile-function cps asm opts) + (let* ((allocation (allocate-slots cps #:precolor-calls? + (kw-arg-ref opts #:precolor-calls? #t))) (forwarding-labels (compute-forwarding-labels cps allocation)) (frame-size (lookup-nlocals allocation))) (define (forward-label k) @@ -600,7 +601,7 @@ (define (emit-bytecode exp env opts) (let ((asm (make-assembler))) (intmap-for-each (lambda (kfun body) - (compile-function (intmap-select exp body) asm)) + (compile-function (intmap-select exp body) asm opts)) (compute-reachable-functions exp 0)) (values (link-assembly asm #:page-aligned? (kw-arg-ref opts #:to-file? #f)) env |