2009-07-18 23:27:42 -04:00
|
|
|
IN: compiler.cfg.dcn.tests
|
2009-07-21 23:24:50 -04:00
|
|
|
USING: tools.test kernel accessors namespaces assocs math
|
|
|
|
|
cpu.architecture vectors sequences classes
|
2009-07-18 23:27:42 -04:00
|
|
|
compiler.cfg
|
2009-07-19 21:12:04 -04:00
|
|
|
compiler.cfg.utilities
|
2009-07-18 23:27:42 -04:00
|
|
|
compiler.cfg.debugger
|
|
|
|
|
compiler.cfg.registers
|
|
|
|
|
compiler.cfg.predecessors
|
|
|
|
|
compiler.cfg.instructions
|
2009-07-21 23:24:50 -04:00
|
|
|
compiler.cfg.checker
|
|
|
|
|
compiler.cfg.dcn
|
2009-07-18 23:27:42 -04:00
|
|
|
compiler.cfg.dcn.height
|
|
|
|
|
compiler.cfg.dcn.local
|
|
|
|
|
compiler.cfg.dcn.local.private
|
|
|
|
|
compiler.cfg.dcn.global
|
|
|
|
|
compiler.cfg.dcn.rewrite ;
|
|
|
|
|
|
|
|
|
|
: test-local-dcn ( insns -- insns' )
|
|
|
|
|
<basic-block> swap >>instructions
|
|
|
|
|
[ local-analysis ] keep
|
|
|
|
|
instructions>> ;
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
: inserting-peeks' ( from to -- assoc )
|
|
|
|
|
[ inserting-peeks ] keep untranslate-locs keys ;
|
|
|
|
|
|
|
|
|
|
: inserting-replaces' ( from to -- assoc )
|
|
|
|
|
[ inserting-replaces ] keep untranslate-locs remove-dead-stores keys ;
|
|
|
|
|
|
2009-07-18 23:27:42 -04:00
|
|
|
[
|
|
|
|
|
V{
|
|
|
|
|
T{ ##copy f V int-regs 1 V int-regs 0 }
|
|
|
|
|
T{ ##copy f V int-regs 3 V int-regs 2 }
|
|
|
|
|
T{ ##copy f V int-regs 5 V int-regs 4 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-18 23:27:42 -04:00
|
|
|
}
|
|
|
|
|
] [
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##peek f V int-regs 1 D 0 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
|
|
|
|
T{ ##peek f V int-regs 2 D 0 }
|
|
|
|
|
T{ ##peek f V int-regs 3 D 0 }
|
|
|
|
|
T{ ##replace f V int-regs 2 D 0 }
|
|
|
|
|
T{ ##replace f V int-regs 4 D 1 }
|
|
|
|
|
T{ ##peek f V int-regs 5 D 1 }
|
|
|
|
|
T{ ##replace f V int-regs 5 D 1 }
|
|
|
|
|
T{ ##replace f V int-regs 6 D -1 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-18 23:27:42 -04:00
|
|
|
} test-local-dcn
|
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
H{
|
|
|
|
|
{ V int-regs 1 V int-regs 0 }
|
|
|
|
|
{ V int-regs 3 V int-regs 2 }
|
|
|
|
|
{ V int-regs 5 V int-regs 4 }
|
|
|
|
|
}
|
|
|
|
|
] [
|
|
|
|
|
copies get
|
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
H{
|
|
|
|
|
{ D 0 V int-regs 0 }
|
|
|
|
|
{ D 1 V int-regs 2 }
|
|
|
|
|
}
|
|
|
|
|
] [ reads-locations get ] unit-test
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
H{
|
|
|
|
|
{ D 0 V int-regs 6 }
|
|
|
|
|
{ D 2 V int-regs 4 }
|
|
|
|
|
}
|
|
|
|
|
] [ writes-locations get ] unit-test
|
|
|
|
|
|
|
|
|
|
: test-global-dcn ( -- )
|
|
|
|
|
cfg new 0 get >>entry
|
|
|
|
|
compute-predecessors
|
2009-07-21 23:24:50 -04:00
|
|
|
deconcatenatize
|
|
|
|
|
check-cfg ;
|
2009-07-18 23:27:42 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
V{ T{ ##epilogue } T{ ##return } } 0 test-bb
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f 1 }
|
|
|
|
|
T{ ##peek f V int-regs 0 D 1 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 1 100 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##replace f V int-regs 1 D 2 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-18 23:27:42 -04:00
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ t ] [ 0 get kill-block? ] unit-test
|
|
|
|
|
[ t ] [ 2 get kill-block? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 0 1 get peek-in key? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ f ] [ D 0 0 get peek-in key? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 0 1 get avail-out key? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ f ] [ D 0 0 get avail-out key? ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 0 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 0 get 1 get inserting-replaces' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 2 } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##peek f V int-regs 0 D 1 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-18 23:27:42 -04:00
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-19 20:45:23 -04:00
|
|
|
} 2 test-bb
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
2009-07-19 20:45:23 -04:00
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 1vector >>successors drop
|
2009-07-21 23:24:50 -04:00
|
|
|
2 get 3 get 1vector >>successors drop
|
2009-07-19 20:45:23 -04:00
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 1 2 get peek-in key? ] unit-test
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 1 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
2009-07-19 20:45:23 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##inc-d f 1 }
|
|
|
|
|
T{ ##peek f V int-regs 0 D 1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 1 D 0 }
|
|
|
|
|
T{ ##peek f V int-regs 2 D 1 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f 1 }
|
|
|
|
|
T{ ##replace f V int-regs 2 D 1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 4 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 3 get 1vector >>successors drop
|
|
|
|
|
4 get 5 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-21 02:24:19 -04:00
|
|
|
[ f ] [ D 0 1 get avail-out key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 1 get avail-out key? ] unit-test
|
|
|
|
|
[ t ] [ D 0 4 get peek-in key? ] unit-test
|
|
|
|
|
[ t ] [ D 1 4 get peek-in key? ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 0 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 0 get 1 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { D 1 } ] [ 1 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 2 get 4 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 4 get 5 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { D 1 } ] [ 4 get 5 get inserting-replaces' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
[ t ] [ D 0 1 get peek-out key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 1 get peek-out key? ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 1 4 get peek-in key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 4 get avail-in key? ] unit-test
|
|
|
|
|
[ t ] [ D 1 4 get avail-out key? ] unit-test
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 1 D 1 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 2 100 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##replace f V int-regs 2 D 1 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
|
|
|
|
T{ ##peek f V int-regs 4 D 1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 3 100 }
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##replace f V int-regs 3 D 0 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 4 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
|
|
|
|
4 get 5 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 1 4 get avail-in key? ] unit-test
|
|
|
|
|
[ f ] [ D 2 4 get avail-in key? ] unit-test
|
|
|
|
|
[ t ] [ D 1 2 get peek-in key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 3 get peek-in key? ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 0 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 0 get 1 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { D 1 } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { D 2 } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 2 get 4 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 4 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 4 get 5 get inserting-replaces' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##peek f V int-regs 0 D 1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##inc-d f -1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-19 20:45:23 -04:00
|
|
|
T{ ##call f drop -1 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 1 D 0 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-18 23:27:42 -04:00
|
|
|
} 4 test-bb
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
2009-07-18 23:27:42 -04:00
|
|
|
[ t ] [ 0 get kill-block? ] unit-test
|
|
|
|
|
[ t ] [ 3 get kill-block? ] unit-test
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 4 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
2009-07-21 23:24:50 -04:00
|
|
|
4 get 5 get 1vector >>successors drop
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-19 20:45:23 -04:00
|
|
|
[ t ] [ D 1 2 get avail-out key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 3 get peek-out key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 3 get avail-out key? ] unit-test
|
|
|
|
|
[ f ] [ D 1 4 get avail-in key? ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 1 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 2 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 3 get 4 get inserting-peeks' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
V{ T{ ##epilogue } T{ ##return } } 2 test-bb
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{ T{ ##branch } } 3 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
3 get 1 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ t ] [ D 0 1 get avail-out key? ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 0 } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 1 get inserting-peeks' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##call f drop }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 1 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 6 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 4 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
|
|
|
|
4 get 5 get 1vector >>successors drop
|
|
|
|
|
5 get 6 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 0 get 1 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 2 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 4 get 5 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 5 get 6 get inserting-peeks' ] unit-test
|
2009-07-18 23:27:42 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 1 100 }
|
2009-07-18 23:27:42 -04:00
|
|
|
T{ ##replace f V int-regs 1 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 2 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 4 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
|
|
|
|
4 get 5 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 1 get 2 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 1 get 3 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 3 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 2 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { D 0 } ] [ 2 get 4 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 4 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 3 get 4 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 4 get 5 get inserting-peeks' ] unit-test
|
|
|
|
|
[ { } ] [ 4 get 5 get inserting-replaces' ] unit-test
|
2009-07-21 02:24:19 -04:00
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 1 100 }
|
2009-07-21 02:24:19 -04:00
|
|
|
T{ ##replace f V int-regs 1 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##load-immediate f V int-regs 2 100 }
|
2009-07-21 02:24:19 -04:00
|
|
|
T{ ##replace f V int-regs 2 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 5 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 3 get V{ } 2sequence >>successors drop
|
|
|
|
|
2 get 4 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
|
|
|
|
4 get 5 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 2 get 4 get inserting-replaces' ] unit-test
|
2009-07-21 02:24:19 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 3 get 4 get inserting-replaces' ] unit-test
|
2009-07-21 02:24:19 -04:00
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { D 0 } ] [ 4 get 5 get inserting-replaces' ] unit-test
|
2009-07-21 02:24:19 -04:00
|
|
|
|
|
|
|
|
! Dead replace elimination
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##peek f V int-regs 1 D 1 }
|
|
|
|
|
T{ ##replace f V int-regs 1 D 0 }
|
|
|
|
|
T{ ##replace f V int-regs 0 D 1 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-21 02:24:19 -04:00
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##inc-d f -2 }
|
2009-07-21 23:24:50 -04:00
|
|
|
T{ ##branch }
|
2009-07-21 02:24:19 -04:00
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 1vector >>successors drop
|
|
|
|
|
2 get 3 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
2009-07-21 23:24:50 -04:00
|
|
|
[ { } ] [ 0 get 1 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
|
|
|
|
[ { } ] [ 2 get 3 get inserting-replaces' ] unit-test
|
|
|
|
|
|
|
|
|
|
! More dead replace elimination tests
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek { dst V int-regs 10 } { loc D 0 } }
|
|
|
|
|
T{ ##inc-d { n -1 } }
|
|
|
|
|
T{ ##inc-r { n 1 } }
|
|
|
|
|
T{ ##replace { src V int-regs 10 } { loc R 0 } }
|
|
|
|
|
T{ ##peek { dst V int-regs 12 } { loc R 0 } }
|
|
|
|
|
T{ ##inc-r { n -1 } }
|
|
|
|
|
T{ ##inc-d { n 1 } }
|
|
|
|
|
T{ ##replace { src V int-regs 12 } { loc D 0 } }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ { } ] [ 1 get 2 get inserting-replaces' ] unit-test
|
|
|
|
|
|
|
|
|
|
! Check that retain stack usage works
|
|
|
|
|
V{
|
|
|
|
|
T{ ##prologue }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 0 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##inc-d f -1 }
|
|
|
|
|
T{ ##inc-r f 1 }
|
|
|
|
|
T{ ##replace f V int-regs 0 R 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 1 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##call f + -1 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 2 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##peek f V int-regs 0 R 0 }
|
|
|
|
|
T{ ##inc-r f -1 }
|
|
|
|
|
T{ ##inc-d f 1 }
|
|
|
|
|
T{ ##replace f V int-regs 0 D 0 }
|
|
|
|
|
T{ ##branch }
|
|
|
|
|
} 3 test-bb
|
|
|
|
|
|
|
|
|
|
V{
|
|
|
|
|
T{ ##epilogue }
|
|
|
|
|
T{ ##return }
|
|
|
|
|
} 4 test-bb
|
|
|
|
|
|
|
|
|
|
0 get 1 get 1vector >>successors drop
|
|
|
|
|
1 get 2 get 1vector >>successors drop
|
|
|
|
|
2 get 3 get 1vector >>successors drop
|
|
|
|
|
3 get 4 get 1vector >>successors drop
|
|
|
|
|
|
|
|
|
|
[ ] [ test-global-dcn ] unit-test
|
|
|
|
|
|
|
|
|
|
[ ##replace D 0 ] [
|
|
|
|
|
3 get successors>> first instructions>> first
|
|
|
|
|
[ class ] [ loc>> ] bi
|
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
|
[ ##replace R 0 ] [
|
|
|
|
|
1 get successors>> first instructions>> first
|
|
|
|
|
[ class ] [ loc>> ] bi
|
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
|
|
[ ##peek R 0 ] [
|
|
|
|
|
2 get successors>> first instructions>> first
|
|
|
|
|
[ class ] [ loc>> ] bi
|
|
|
|
|
] unit-test
|