%!PS-Adobe-2.0 EPSF-1.2 %%BoundingBox: 84 119 406 279 %%Pages: 1 1 %%DocumentFonts: Helvetica %%EndComments /drop {pop} def /swap {exch} def /nip {swap drop} def /xtf {50 mul 50 add} def /ytf {40 mul 130 add} def /tf {exch xtf exch ytf} def /mt {tf moveto} def /lt {tf lineto} def /xbase 1 def /ybase 0 def 1 setlinejoin 1 setlinecap 0 0 translate newpath /Helvetica findfont 8 scalefont setfont /ylt {currentpoint drop swap ytf lineto} def /pattern0 << /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0 0 8 8] /XStep 6 /YStep 3 /PaintProc {begin 5 setlinewidth -1 -1 moveto 10 10 lineto stroke end} >> matrix makepattern def /pattern1 << /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0 0 8 8] /XStep 6 /YStep 3 /PaintProc {begin 1.2 setlinewidth -1 -1 moveto 10 10 lineto stroke end} >> matrix makepattern def /pattern2 << /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0 0 8 8] /XStep 6 /YStep 3 /PaintProc {begin 1.2 setlinewidth 9 -1 moveto -1 9 lineto stroke end} >> matrix makepattern def /pattern3 << /PatternType 1 /PaintType 2 /TilingType 1 /BBox [0 0 8 8] /XStep 6 /YStep 3 /PaintProc {begin 0.5 setlinewidth 9 -1 moveto -1 9 lineto -1 -1 moveto 10 10 lineto stroke end} >> matrix makepattern def /colors [ {0 0 0 pattern0} {0.2 0.2 1 pattern2} {0 0 0.6 pattern2} {0.5 0.5 1 pattern2} {0.7 0 0 pattern1} {1 0.4 0.4 pattern1} {0.9 0 0 pattern1} {1 0.5 0.2 pattern1} {0.8 0 0.5 pattern3} ] def /setncolor {colors swap get exec [/Pattern /DeviceRGB] setcolorspace setcolor} def %grayness1 -- grayness2 /setnextgray {dup setgray 0.26 add dup 1 gt {1 sub} if} def /setnextcolor {dup setncolor 1 add} def %grayness height -- grayness1 /bar { scalefactor div 1 swap div swap setnextcolor %setnextgray swap gsave ylt stroke grestore 4 0 rmoveto} def /skipbar {1.0 bar} def /gap {8 0 rmoveto} def %grayness1 string -- grayness2 /label {swap gsave setnextcolor 6 0 rlineto currentpoint stroke grestore moveto 1 -3 rmoveto swap 0 setgray show 8 3 rmoveto } def /xjright {dup stringwidth pop neg 0 rmoveto} def /xjcenter {dup stringwidth pop 2 div neg 0 rmoveto} def /yjtop {0 -7 rmoveto} def /yjcenter {0 -3.5 rmoveto} def /xtick1 { 0 setgray 0.5 setlinewidth 15 3 rmoveto 0 -2 rmoveto 0 -2 rmoveto xjcenter yjtop show stroke /xtick /xtick1 load def } def /xtick2 { 0 setgray 0.5 setlinewidth 7 3 rmoveto 0 -11 rmoveto 0 -2 rmoveto xjcenter yjtop show stroke /xtick /xtick1 load def } def /xtick //xtick1 def %/xtick { dup ybase mt 0 -2 rlineto 0 -2 rmoveto str cvs xjcenter yjtop show } def 1 setlinejoin 0 setlinecap 0 0 translate 4 setlinewidth 1.1 ybase mt % for j in Gray4 bench-gc3.fs tscp.fs prims2x.fs kernel.main.fs brainless-0.0.2 brew.fs; do echo "%$j"; for i in \ % '-0 -i .*gforth-ib-0.fi --no-dynamic\n' \ % '-0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0\n' \ % '-400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400\n' \ % '-35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35\n' \ % '-0 -i .*gforth-ib-0.fi --no-reuse --no-super\n' \ % '-0 -i .*gforth-ib-0.fi\n' \ % '-0 -i .*gforth-ib-0.fi --no-reuse\n' \ % '-0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb\n' \ % '-400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb\n' \ % ; do awk "/$i/&&/$j/" RS="/a5/anton/interpreter-btb/gforth2/gforth-fast-ib" result-celeron-dynamic| awk "/tsc/ {n+=\$2} END {print int(n/3) \" bar %$j, ${i%%\\n}\"}"; done; done 0 gsave (gray) xtick grestore /scalefactor 41392471 def %Gray4 41392471 bar %Gray4, -0 -i .*gforth-ib-0.fi --no-dynamic 32583358 bar %Gray4, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 39798282 bar %Gray4, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 32876775 bar %Gray4, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 32380697 bar %Gray4, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 28816217 bar %Gray4, -0 -i .*gforth-ib-0.fi 26926073 bar %Gray4, -0 -i .*gforth-ib-0.fi --no-reuse 26857553 bar %Gray4, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 27404802 bar %Gray4, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (bench-gc) xtick grestore /scalefactor 449724097 def %bench-gc3.fs 449724097 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi --no-dynamic 258318387 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 294733049 bar %bench-gc3.fs, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 225992688 bar %bench-gc3.fs, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 188071955 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 183168581 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi 149376752 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi --no-reuse 145369897 bar %bench-gc3.fs, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 141721687 bar %bench-gc3.fs, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (tscp) xtick grestore /scalefactor 2.25077e+09 def %tscp.fs 2.25077e+09 bar %tscp.fs, -0 -i .*gforth-ib-0.fi --no-dynamic 1543619189 bar %tscp.fs, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 1551114736 bar %tscp.fs, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 1428276416 bar %tscp.fs, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 1208208785 bar %tscp.fs, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 991683001 bar %tscp.fs, -0 -i .*gforth-ib-0.fi 913252794 bar %tscp.fs, -0 -i .*gforth-ib-0.fi --no-reuse 851288291 bar %tscp.fs, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 804633367 bar %tscp.fs, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (vmgen) xtick grestore /scalefactor 226197620 def %prims2x.fs 226197620 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi --no-dynamic 171606181 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 201368028 bar %prims2x.fs, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 156943331 bar %prims2x.fs, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 145654771 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 135387719 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi 123132836 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi --no-reuse 122380646 bar %prims2x.fs, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 121595767 bar %prims2x.fs, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (cross) xtick grestore /scalefactor 227681927 def %kernel.main.fs 227681927 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi --no-dynamic 197025599 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 223024846 bar %kernel.main.fs, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 202106983 bar %kernel.main.fs, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 193578203 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 158804428 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi 162062693 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi --no-reuse 157733626 bar %kernel.main.fs, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 156047523 bar %kernel.main.fs, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (brainless) xtick grestore /scalefactor 7.97777e+09 def %brainless-0.0.2 7.97777e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi --no-dynamic 6.85341e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 4.88671e+09 bar %brainless-0.0.2, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 5.59058e+09 bar %brainless-0.0.2, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 5.73624e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 3.97641e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi 4.40296e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi --no-reuse 3.97828e+09 bar %brainless-0.0.2, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 3.4519e+09 bar %brainless-0.0.2, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap 0 gsave (brew) xtick grestore /scalefactor 5.67572e+10 def %brew.fs 5.67572e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi --no-dynamic 4.2333e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi --static-rep .*correct-total-400-super-0 5.95128e+10 bar %brew.fs, -400 -i .*gforth-ib-400.fi --static-rep .*correct-total-400-super-400 4.23145e+10 bar %brew.fs, -35 -i .*gforth-ib-35.fi --static-rep .*correct-total-400-super-35 3.73352e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi --no-reuse --no-super 3.25018e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi 3.00789e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi --no-reuse 2.96954e+10 bar %brew.fs, -0 -i .*gforth-ib-0.fi --no-reuse --super-across-bb 3.17125e+10 bar %brew.fs, -400 -i .*gforth-ib-400.fi --no-reuse --super-across-bb pop gap [] 0 setdash 0 setgray 0.5 setlinewidth xbase 3.0 mt xbase ybase lt 7.1 ybase lt stroke %4.1 ybase mt (superinst. length) yjcenter show xbase 3.1 mt (speedup) xjcenter show %x str xtick[12] %/xtick1 { exch ybase mt 0 -2 rlineto 0 -2 rmoveto xjcenter yjtop show } def %/xtick2 { exch ybase mt 0 -11 rlineto 0 -2 rmoveto xjcenter yjtop show } def /str 20 string def /ytick { dup xbase exch mt -2 0 rlineto -2 0 rmoveto str cvs xjright yjcenter show } def 1.0 ytick 2.0 ytick 3.0 ytick %0.4 ytick %0.2 ytick %0.0 ytick %1.4 ytick %1.5 ytick %2.0 ytick %50 ytick stroke 6 setlinewidth xbase 3.55 mt -5 3 rmoveto 0 (plain) label (static repl) label (static super) label (static both) label xbase 3.3 mt 0 3 rmoveto (dynamic repl) label (dynamic super) label (dynamic both) label (across bb) label (with static super) label pop