]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.codegen: collect instruction statistics
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 27 Jul 2009 08:58:15 +0000 (03:58 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 27 Jul 2009 08:58:15 +0000 (03:58 -0500)
basis/compiler/codegen/codegen.factor

index f1052da2d56706d144a6b7a4c03d367e51691c17..993edbf812b6e15374269f0a8e7e4a7dc2000cf1 100755 (executable)
@@ -4,7 +4,7 @@ USING: namespaces make math math.order math.parser sequences accessors
 kernel kernel.private layouts assocs words summary arrays
 combinators classes.algebra alien alien.c-types alien.structs
 alien.strings alien.arrays alien.complex alien.libraries sets libc
-continuations.private fry cpu.architecture
+continuations.private fry cpu.architecture classes
 source-files.errors
 compiler.errors
 compiler.alien
@@ -18,6 +18,10 @@ compiler.codegen.fixup
 compiler.utilities ;
 IN: compiler.codegen
 
+SYMBOL: insn-counts
+
+H{ } clone insn-counts set-global
+
 GENERIC: generate-insn ( insn -- )
 
 SYMBOL: registers
@@ -54,7 +58,12 @@ SYMBOL: labels
         [ word>> init-generator ]
         [
             instructions>>
-            [ [ regs>> registers set ] [ generate-insn ] bi ] each
+            [
+                [ class insn-counts get inc-at ]
+                [ regs>> registers set ]
+                [ generate-insn ]
+                tri
+            ] each
         ] bi
     ] with-fixup ;