Fix dead load/store elimination
parent
4c5dcf4135
commit
3ff7262976
|
|
@ -1,5 +1,7 @@
|
|||
should fix in 0.82:
|
||||
|
||||
- constant branch folding
|
||||
- getenv, setenv, fast-slot stuff
|
||||
- 3 >n fep
|
||||
- amd64 %box-struct
|
||||
- get factor running on mac intel
|
||||
|
|
@ -27,6 +29,7 @@ should fix in 0.82:
|
|||
|
||||
+ ui/help:
|
||||
|
||||
- polish OS X menu bar code
|
||||
- help search
|
||||
- reimplement clicking input
|
||||
- reimplement tab completion
|
||||
|
|
@ -74,7 +77,6 @@ should fix in 0.82:
|
|||
- the invalid recursion form case needs to be fixed, for inlines too
|
||||
- code gc
|
||||
- compiled gc check slows things down
|
||||
- fix branch folding
|
||||
|
||||
+ misc:
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ namespaces prettyprint sequences vectors words ;
|
|||
2dup length <= [
|
||||
cut-phantom
|
||||
] [
|
||||
[ phantom-locs ] keep [ length swap tail-slice ] keep
|
||||
append
|
||||
[ phantom-locs ] keep [ length swap head-slice* ] keep
|
||||
[ append 0 ] keep set-length
|
||||
] if ;
|
||||
|
||||
: phantom-shuffle-inputs ( shuffle -- locs locs )
|
||||
|
|
@ -26,9 +26,9 @@ namespaces prettyprint sequences vectors words ;
|
|||
free-vregs get length <= ;
|
||||
|
||||
: phantom-shuffle ( shuffle -- )
|
||||
! compute-free-vregs sufficient-shuffle-vregs? [
|
||||
compute-free-vregs sufficient-shuffle-vregs? [
|
||||
end-basic-block compute-free-vregs
|
||||
! ] unless
|
||||
] unless
|
||||
[ phantom-shuffle-inputs ] keep
|
||||
[ shuffle* ] keep adjust-shuffle
|
||||
(template-outputs) ;
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ SYMBOL: phantom-r
|
|||
: lazy-load ( value loc -- value )
|
||||
over ds-loc? pick cs-loc? or [
|
||||
dupd = [
|
||||
drop f
|
||||
>r alloc-reg <vreg> dup r> %peek , ! drop f
|
||||
] [
|
||||
>r alloc-reg <vreg> dup r> %peek ,
|
||||
] if
|
||||
|
|
@ -166,11 +166,8 @@ SYMBOL: any-reg
|
|||
>r phantom-d get template-match? r> and ;
|
||||
|
||||
: split-template ( template phantom -- slow fast )
|
||||
over length over length <= [
|
||||
drop { } swap
|
||||
] [
|
||||
length swap cut*
|
||||
] if ;
|
||||
over length over length <=
|
||||
[ drop { } swap ] [ length swap cut* ] if ;
|
||||
|
||||
: split-templates ( template template -- slow slow fast fast )
|
||||
>r phantom-d get split-template r>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@ math-internals namespaces test ;
|
|||
[ 0 ] [ 3 [ tag ] compile-1 ] unit-test
|
||||
[ 0 3 ] [ 3 [ [ tag ] keep ] compile-1 ] unit-test
|
||||
|
||||
[ 2 3 ] [ 3 [ 2 swap ] compile-1 ] unit-test
|
||||
|
||||
[ 2 3 4 ] [ 3 [ 2 swap 4 ] compile-1 ] unit-test
|
||||
|
||||
[ { 1 2 3 } { 1 4 3 } 8 8 ]
|
||||
[ { 1 2 3 } { 1 4 3 } [ over type over type ] compile-1 ]
|
||||
unit-test
|
||||
|
|
|
|||
Loading…
Reference in New Issue