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 ;
|
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 )
|
: active-intervals ( insn -- intervals )
|
||||||
insn#>> pending-intervals get [ covers? ] with filter
|
insn#>> pending-intervals get [ covers? ] with filter
|
||||||
check-assignment? get [
|
check-assignment? get [
|
||||||
dup [ reg>> ] map all-unique?
|
dup check-assignment
|
||||||
[ overlapping-registers ] unless
|
|
||||||
] when ;
|
] when ;
|
||||||
|
|
||||||
M: vreg-insn assign-registers-in-insn
|
M: vreg-insn assign-registers-in-insn
|
||||||
|
|
Loading…
Reference in New Issue