diff --git a/basis/compiler/cfg/linear-scan/assignment/assignment-docs.factor b/basis/compiler/cfg/linear-scan/assignment/assignment-docs.factor index 132e5b5816..1858fc806d 100644 --- a/basis/compiler/cfg/linear-scan/assignment/assignment-docs.factor +++ b/basis/compiler/cfg/linear-scan/assignment/assignment-docs.factor @@ -66,7 +66,7 @@ HELP: vreg>reg { $see-also lookup-spill-slot pending-interval-assoc } ; HELP: vregs>regs -{ $values { "vregs" "a sequence of virtual registers" } { "assoc" assoc } } +{ $values { "assoc" "an " { $link assoc } " (set) of virtual registers" } { "assoc" assoc } } { $description "Creates a mapping of virtual registers to registers." } ; HELP: vreg>spill-slot diff --git a/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor b/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor index 960d309d72..7cc7757c18 100644 --- a/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor +++ b/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor @@ -151,10 +151,10 @@ IN: compiler.cfg.linear-scan.assignment.tests ] [ bad-vreg? ] must-fail-with ! vregs>regs -{ H{ { 44 RBX } { 33 RAX } } } [ +{ { { 33 RAX } { 44 RBX } } } [ { { 33 int-rep 33 f } { 44 int-rep 44 f } } setup-vreg-spills H{ { 33 RAX } { 44 RBX } } pending-interval-assoc set - { 33 44 } vregs>regs + { { 33 33 } { 44 44 } } vregs>regs ] unit-test diff --git a/basis/compiler/cfg/linear-scan/assignment/assignment.factor b/basis/compiler/cfg/linear-scan/assignment/assignment.factor index bd379b8d25..9143a0b056 100644 --- a/basis/compiler/cfg/linear-scan/assignment/assignment.factor +++ b/basis/compiler/cfg/linear-scan/assignment/assignment.factor @@ -35,8 +35,8 @@ ERROR: not-spilled-error vreg ; dup vreg>reg dup spill-slot? [ nip ] [ drop leader not-spilled-error ] if ; -: vregs>regs ( vregs -- assoc ) - [ dup vreg>reg ] H{ } map>assoc ; +: vregs>regs ( assoc -- assoc' ) + [ vreg>reg ] assoc-map ; SYMBOL: unhandled-intervals @@ -46,7 +46,7 @@ SYMBOL: machine-live-ins machine-live-ins get at ; : compute-live-in ( bb -- ) - [ live-in keys vregs>regs ] keep machine-live-ins get set-at ; + [ live-in vregs>regs ] keep machine-live-ins get set-at ; SYMBOL: machine-edge-live-ins @@ -54,7 +54,7 @@ SYMBOL: machine-edge-live-ins machine-edge-live-ins get at at ; : compute-edge-live-in ( bb -- ) - [ edge-live-ins get at [ keys vregs>regs ] assoc-map ] keep + [ edge-live-ins get at [ vregs>regs ] assoc-map ] keep machine-edge-live-ins get set-at ; SYMBOL: machine-live-outs @@ -63,7 +63,7 @@ SYMBOL: machine-live-outs machine-live-outs get at ; : compute-live-out ( bb -- ) - [ live-out keys vregs>regs ] keep machine-live-outs get set-at ; + [ live-out vregs>regs ] keep machine-live-outs get set-at ; : insert-spill ( live-interval -- ) [ reg>> ] [ spill-rep>> ] [ spill-to>> ] tri ##spill, ;