compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing
parent
fc6c9e2dfd
commit
54876d0cba
|
@ -108,11 +108,14 @@ SYMBOL: check-assignment?
|
|||
|
||||
ERROR: overlapping-registers intervals ;
|
||||
|
||||
: check-assignment ( intervals -- )
|
||||
dup [ copy-from>> ] map sift '[ vreg>> _ member? not ] filter
|
||||
dup [ reg>> ] map all-unique? [ drop ] [ overlapping-registers ] if ;
|
||||
|
||||
: active-intervals ( insn -- intervals )
|
||||
insn#>> pending-intervals get [ covers? ] with filter
|
||||
check-assignment? get [
|
||||
dup [ reg>> ] map all-unique?
|
||||
[ overlapping-registers ] unless
|
||||
dup check-assignment
|
||||
] when ;
|
||||
|
||||
M: vreg-insn assign-registers-in-insn
|
||||
|
|
Loading…
Reference in New Issue