subtract-live-range ( range occupied -- remaining )


Vocabulary
compiler.cfg.register-allocation.backtracking

Inputs
rangean object
occupiedan object


Outputs
remainingan object


Definition


:: 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 ;