Handbook
Glossary
subtract-live-range ( range occupied -- remaining )
Vocabulary
compiler
.
cfg
.
register-allocation
.
backtracking
Inputs
range
an
object
occupied
an
object
Outputs
remaining
an
object
Definition
USING:
arrays
kernel
math
math.order
sequences
;
IN:
compiler.cfg.register-allocation.backtracking
::
subtract-live-range
( range occupied -- remaining )
range
first
:>
start! range
second
:>
end
V{
}
clone
:>
remaining occupied
[|
taken |
taken
first
start
>
[
start taken
first
1
-
end
min
2array
remaining
push
]
when
taken
second
1
+
start
max
start!
]
each
start end
<=
[
start end
2array
remaining
push
]
when
remaining
[
first2
<=
]
filter
;