Some fixes to merge scheduling

db4
Daniel Ehrenberg 2010-05-03 17:54:46 -05:00
parent 05f0470556
commit b02208ceb2
3 changed files with 12 additions and 26 deletions
basis/compiler/cfg

View File

@ -49,25 +49,14 @@ M: node hashcode* nip number>> ;
node insn>> uses-vregs [ definers at [ node +data+ precedes ] when* ] each
] each ;
UNION: stack-read-write ##peek ##replace ;
UNION: stack-insn ##peek ##replace ##replace-imm ;
UNION: ##alien-read
##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
UNION: slot-insn
##read ##write ;
UNION: alien-memory-insn
##alien-read ##alien-write ;
UNION: string-memory-insn
##string-nth ##set-string-nth-fast ;
UNION: memory-insn
##load-memory ##load-memory-imm
##store-memory ##store-memory-imm ;
UNION: alien-call-insn
##save-context
@ -82,17 +71,14 @@ UNION: alien-call-insn
GENERIC: add-control-edge ( node insn -- )
M: stack-read-write add-control-edge
M: stack-insn add-control-edge
loc>> chain ;
M: alien-memory-insn add-control-edge
drop alien-memory-insn chain ;
M: memory-insn add-control-edge
drop memory-insn chain ;
M: slot-memory-insn add-control-edge
drop slot-memory-insn chain ;
M: string-memory-insn add-control-edge
drop string-memory-insn chain ;
M: slot-insn add-control-edge
drop slot-insn chain ;
M: alien-call-insn add-control-edge
drop alien-call-insn chain ;

View File

@ -8,7 +8,7 @@ IN: compiler.cfg.finalization
: finalize-cfg ( cfg -- cfg' )
select-representations
schedule-instructions
! schedule-instructions
insert-gc-checks
insert-save-contexts
destruct-ssa

View File

@ -52,4 +52,4 @@ M: insn normalize-height* ;
rs-height get dup 0 = [ drop ] [ \ ##inc-r new-insn prefix ] if ;
: normalize-height ( cfg -- cfg' )
[ height-step ] local-optimization ;
[ height-step ] simple-optimization ;