factor/extra/reports/optimizer/optimizer.factor

34 lines
965 B
Factor
Raw Normal View History

USING: assocs words sequences arrays compiler tools.time
io.styles io prettyprint vocabs kernel sorting generator
2008-03-29 00:00:20 -04:00
optimizer math ;
IN: report.optimizer
: count-optimization-passes ( nodes n -- n )
>r optimize-1
[ r> 1+ count-optimization-passes ] [ drop r> ] if ;
: results
[ [ second ] swap compose compare ] curry sort 20 tail*
print
standard-table-style
[
[ [ [ pprint-cell ] each ] with-row ] each
2008-03-17 00:42:21 -04:00
] tabular-output ; inline
2008-03-17 00:42:21 -04:00
: optimizer-measurements ( -- alist )
all-words [ compiled? ] subset
[
dup [
word-dataflow nip 1 count-optimization-passes
] benchmark nip 2array
2008-03-17 00:42:21 -04:00
] { } map>assoc ;
: optimizer-measurements. ( alist -- )
[ [ first ] "Worst number of optimizer passes:" results ]
[ [ second ] "Worst compile times:" results ] bi ;
: optimizer-report ( -- )
optimizer-measurements optimizer-measurements. ;
MAIN: optimizer-report