1) LIS.cond2s contains some suggestions about trivial improvements which would improve the quality of the code by a fair bit. 2) LIS.csieve is a disassembly of the sieve benchmark run through NORCROFTs C compiler - which does a dataflow analysis to see if it can keep variables in registers throughout a procedure. The code for the identical version of the sieve in Imp is in LIS.sieve - NORCROFT's code wins hands-down, although the Imp code could be improved by simple live/dead analysis at a local level, with delayed storing of variables and moving invariants out of short loops. 3) After observing the quality of the NorCroft C, I put the conditional-test file through it (after translating to C) - it produced almost exactly the code I generated by hand...
Apache/2.4 Server at history.dcs.ed.ac.uk Port 443Name Last modified Size Description
README 2008-10-12 00:24 795
ccond2s.lis 2008-10-12 00:24 4.7K
cond2s.c 2008-10-12 00:24 2.4K
cond2s.dec 2008-10-12 00:24 327
cond2s.imp 2008-10-12 00:24 2.8K
cond2s.lis 2008-10-12 00:24 8.3K
csieve.lis 2008-10-12 00:25 3.7K
d.dec 2008-10-12 00:24 704
d.exe 2008-10-12 00:24 19K
d.imp 2008-10-12 00:24 48
dd.imp 2008-10-12 00:24 4.2K
decarm.imp 2008-10-12 00:25 16K
decode.exe 2008-10-12 00:24 60K
decoder.imp 2008-10-12 00:24 18K
dectags.imp 2008-10-12 00:25 381
edit.exe 2008-10-12 00:24 31K
encode.imp 2008-10-12 00:24 658
imp77.exe 2008-10-12 00:24 221K
implib.a 2008-10-12 00:25 130K
intmath.aof 2008-10-12 00:24 912
intmath.dec 2008-10-12 00:24 289
intmath.imp 2008-10-12 00:24 220
link.exe 2008-10-12 00:25 108K
map.dec 2008-10-12 00:24 288
map.imp 2008-10-12 00:24 229
mydec.dec 2008-10-12 00:24 768
mydec.exe 2008-10-12 00:24 34K
mydecv0.imp 2008-10-12 00:24 4.9K
realmath.src 2008-10-12 00:24 255
savedecarm.imp 2008-10-12 00:24 12K
sieve.c 2008-10-12 00:24 562
sieve.dec 2008-10-12 00:24 298
sieve.exe 2008-10-12 00:24 31K
sieve.imp 2008-10-12 00:24 638
sieve.lis 2008-10-12 00:24 5.4K
static.aof 2008-10-12 00:24 604
static.c 2008-10-12 00:24 115
static.dec 2008-10-12 00:24 291
static.imp 2008-10-12 00:24 232
temp1.tmp 2008-10-12 00:25 5.7K
temp2.tmp 2008-10-12 00:25 3.5K
triglog.src 2008-10-12 00:24 261
z.txt 2008-10-12 00:24 78
zzz.txt 2008-10-12 00:24 3.1K