compiler.cfg.gvn.alien: clean up destructive rewrites

db4
Alex Vondrak 2011-06-18 16:40:45 -07:00 committed by John Benediktsson
parent 60abd53808
commit 1adfdc5fd6
2 changed files with 3 additions and 7 deletions

View File

@ -52,7 +52,7 @@ M: ##unbox-alien rewrite rewrite-unbox-any-c-ptr ;
base>> vreg>insn ##add-imm? ;
: fuse-base-offset ( insn -- insn' )
dup base>> vreg>insn
clone dup base>> vreg>insn
[ src1>> ] [ src2>> ] bi
[ >>base ] [ '[ _ + ] change-offset ] bi* ;
@ -62,7 +62,7 @@ M: ##unbox-alien rewrite rewrite-unbox-any-c-ptr ;
{ [ scale>> 0 = ] [ displacement>> vreg>insn ##add-imm? ] } 1&& ;
: fuse-displacement-offset ( insn -- insn' )
dup displacement>> vreg>insn
clone dup displacement>> vreg>insn
[ src1>> ] [ src2>> ] bi
[ >>displacement ] [ '[ _ + ] change-offset ] bi* ;
@ -104,7 +104,7 @@ M: ##store-memory-imm new-alien-insn drop \ ##store-memory new-insn ;
{ [ scale>> 0 = ] [ displacement>> vreg>insn scale-insn? ] } 1&& ;
: fuse-scale ( insn -- insn' )
dup displacement>> vreg>insn
clone dup displacement>> vreg>insn
[ src1>> ] [ src2>> ] bi
[ >>displacement ] [ >>scale ] bi* ;

View File

@ -49,10 +49,6 @@ M: array process-instruction
: value-numbering-step ( insns -- insns' )
[ process-instruction ] map flatten ;
! FIXME there's going to be trouble with certain rewrites that
! modify the cfg / instructions destructively; namely those in
! alien.factor
: value-numbering-iteration ( cfg -- )
clear-exprs
[ value-numbering-step drop ] simple-analysis ;