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