1 USING: assocs words sequences arrays compiler tools.time
\r
2 io.styles io prettyprint vocabs kernel sorting generator
\r
3 optimizer math math.order ;
\r
6 : count-optimization-passes ( nodes n -- n )
\r
8 [ r> 1+ count-optimization-passes ] [ drop r> ] if ;
\r
11 [ [ second ] prepose compare ] curry sort 20 tail*
\r
13 standard-table-style
\r
15 [ [ [ pprint-cell ] each ] with-row ] each
\r
16 ] tabular-output ; inline
\r
18 : optimizer-measurements ( -- alist )
\r
19 all-words [ compiled? ] filter
\r
22 word-dataflow nip 1 count-optimization-passes
\r
26 : optimizer-measurements. ( alist -- )
\r
27 [ [ first ] "Worst number of optimizer passes:" results ]
\r
28 [ [ second ] "Worst compile times:" results ] bi ;
\r
30 : optimizer-report ( -- )
\r
31 optimizer-measurements optimizer-measurements. ;
\r
33 MAIN: optimizer-report
\r