Handbook
Glossary
coalesce-bundle-groups ( intervals -- groups )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
intervals
an
object
Outputs
groups
an
object
Definition
USING:
accessors
assocs
kernel
namespaces
sequences
sets
;
IN:
compiler.cfg.register-allocation.backtracking
::
coalesce-bundle-groups
( intervals -- groups )
H{
}
clone
:>
groups intervals
[
dup
vreg>>
groups
push-at
]
each
backtracking-affinities
get
[|
pair |
pair
first
groups
at
:>
first-group pair
second
groups
at
:>
second-group first-group second-group
and
[
first-group second-group
eq?
[
]
[
first-group second-group
mergeable-groups?
[
first-group second-group
append
:>
merged merged
[
vreg>>
merged
swap
groups
set-at
]
each
backtracking-merges
inc
]
when
]
if
]
when
]
each
groups
values
members
;