diff options
author | Andy Wingo <wingo@pobox.com> | 2014-01-10 16:40:24 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-01-11 16:01:11 +0100 |
commit | c79f873eb15d727986405563c64650e901119c70 (patch) | |
tree | d518d061387d5a63d2c262e51e533c9638b501ca | |
parent | f409295892e8eb28e9df2e934badc1fcf4aa5e72 (diff) | |
download | guile-c79f873eb15d727986405563c64650e901119c70.tar.gz |
Fix allocate-slots bug
* module/language/cps/slot-allocation.scm (allocate-slots): Fix bug in
allocate!, whereby a previously hinted allocation would not be added
to the live set if a hint was not given later.
-rw-r--r-- | module/language/cps/slot-allocation.scm | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/module/language/cps/slot-allocation.scm b/module/language/cps/slot-allocation.scm index 9469f035e..245ee129a 100644 --- a/module/language/cps/slot-allocation.scm +++ b/module/language/cps/slot-allocation.scm @@ -278,8 +278,8 @@ are comparable with eqv?. A tmp slot may be used." (define* (allocate! var-idx hint live) (cond ((not (bitvector-ref needs-slotv var-idx)) live) - ((and (not hint) (bitvector-ref needs-hintv var-idx)) live) ((vector-ref slots var-idx) => (cut add-live-slot <> live)) + ((and (not hint) (bitvector-ref needs-hintv var-idx)) live) (else (let ((slot (compute-slot live hint))) (bump-nlocals! (1+ slot)) |