compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing

db4
Slava Pestov 2009-06-30 18:10:53 -05:00
parent fc6c9e2dfd
commit 54876d0cba
1 changed files with 5 additions and 2 deletions

View File

@ -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