Some fixes to merge scheduling
parent
05f0470556
commit
b02208ceb2
|
@ -49,25 +49,14 @@ M: node hashcode* nip number>> ;
|
||||||
node insn>> uses-vregs [ definers at [ node +data+ precedes ] when* ] each
|
node insn>> uses-vregs [ definers at [ node +data+ precedes ] when* ] each
|
||||||
] each ;
|
] each ;
|
||||||
|
|
||||||
UNION: stack-read-write ##peek ##replace ;
|
UNION: stack-insn ##peek ##replace ##replace-imm ;
|
||||||
|
|
||||||
UNION: ##alien-read
|
UNION: slot-insn
|
||||||
##alien-double ##alien-float ##alien-cell ##alien-vector
|
|
||||||
##alien-signed-1 ##alien-signed-2 ##alien-signed-4
|
|
||||||
##alien-unsigned-1 ##alien-unsigned-2 ##alien-unsigned-4 ;
|
|
||||||
|
|
||||||
UNION: ##alien-write
|
|
||||||
##set-alien-double ##set-alien-float ##set-alien-cell ##set-alien-vector
|
|
||||||
##set-alien-integer-1 ##set-alien-integer-2 ##set-alien-integer-4 ;
|
|
||||||
|
|
||||||
UNION: slot-memory-insn
|
|
||||||
##read ##write ;
|
##read ##write ;
|
||||||
|
|
||||||
UNION: alien-memory-insn
|
UNION: memory-insn
|
||||||
##alien-read ##alien-write ;
|
##load-memory ##load-memory-imm
|
||||||
|
##store-memory ##store-memory-imm ;
|
||||||
UNION: string-memory-insn
|
|
||||||
##string-nth ##set-string-nth-fast ;
|
|
||||||
|
|
||||||
UNION: alien-call-insn
|
UNION: alien-call-insn
|
||||||
##save-context
|
##save-context
|
||||||
|
@ -82,17 +71,14 @@ UNION: alien-call-insn
|
||||||
|
|
||||||
GENERIC: add-control-edge ( node insn -- )
|
GENERIC: add-control-edge ( node insn -- )
|
||||||
|
|
||||||
M: stack-read-write add-control-edge
|
M: stack-insn add-control-edge
|
||||||
loc>> chain ;
|
loc>> chain ;
|
||||||
|
|
||||||
M: alien-memory-insn add-control-edge
|
M: memory-insn add-control-edge
|
||||||
drop alien-memory-insn chain ;
|
drop memory-insn chain ;
|
||||||
|
|
||||||
M: slot-memory-insn add-control-edge
|
M: slot-insn add-control-edge
|
||||||
drop slot-memory-insn chain ;
|
drop slot-insn chain ;
|
||||||
|
|
||||||
M: string-memory-insn add-control-edge
|
|
||||||
drop string-memory-insn chain ;
|
|
||||||
|
|
||||||
M: alien-call-insn add-control-edge
|
M: alien-call-insn add-control-edge
|
||||||
drop alien-call-insn chain ;
|
drop alien-call-insn chain ;
|
||||||
|
|
|
@ -8,7 +8,7 @@ IN: compiler.cfg.finalization
|
||||||
|
|
||||||
: finalize-cfg ( cfg -- cfg' )
|
: finalize-cfg ( cfg -- cfg' )
|
||||||
select-representations
|
select-representations
|
||||||
schedule-instructions
|
! schedule-instructions
|
||||||
insert-gc-checks
|
insert-gc-checks
|
||||||
insert-save-contexts
|
insert-save-contexts
|
||||||
destruct-ssa
|
destruct-ssa
|
||||||
|
|
|
@ -52,4 +52,4 @@ M: insn normalize-height* ;
|
||||||
rs-height get dup 0 = [ drop ] [ \ ##inc-r new-insn prefix ] if ;
|
rs-height get dup 0 = [ drop ] [ \ ##inc-r new-insn prefix ] if ;
|
||||||
|
|
||||||
: normalize-height ( cfg -- cfg' )
|
: normalize-height ( cfg -- cfg' )
|
||||||
[ height-step ] local-optimization ;
|
[ height-step ] simple-optimization ;
|
||||||
|
|
Loading…
Reference in New Issue