]> gitweb.factorcode.org Git - factor.git/commitdiff
vm: add the gc-info struct
authorBjörn Lindqvist <bjourne@gmail.com>
Mon, 25 Aug 2014 17:34:46 +0000 (19:34 +0200)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 25 Aug 2014 21:52:11 +0000 (14:52 -0700)
basis/compiler/codegen/gc-maps/gc-maps-tests.factor
basis/vm/vm-docs.factor
basis/vm/vm.factor
extra/tools/gc-decode/gc-decode-docs.factor
extra/tools/gc-decode/gc-decode-tests.factor
extra/tools/gc-decode/gc-decode.factor

index 6f9f799bf75ad599d0ecb0a46e9610382477a99d..94a63ac8b9b04653bd2f1a67053354c91ee2f447 100644 (file)
@@ -2,17 +2,10 @@ USING: namespaces byte-arrays make compiler.codegen.gc-maps
 compiler.codegen.relocation bit-arrays accessors classes.struct
 tools.test kernel math sequences alien.c-types
 specialized-arrays boxes compiler.cfg.instructions system
-cpu.architecture ;
+cpu.architecture vm ;
 SPECIALIZED-ARRAY: uint
 IN: compiler.codegen.gc-maps.tests
 
-STRUCT: gc-info
-{ scrub-d-count uint }
-{ scrub-r-count uint }
-{ gc-root-count uint }
-{ derived-root-count uint }
-{ return-address-count uint } ;
-
 SINGLETON: fake-cpu
 
 fake-cpu \ cpu set
@@ -63,7 +56,7 @@ M: fake-cpu gc-root-offset ;
         ! Return addresses
         uint-array{ 100 } underlying>> %
 
-        ! GC info footer - 16 bytes
+        ! GC info footer - 20 bytes
         S{ gc-info
             { scrub-d-count 5 }
             { scrub-r-count 2 }
index 908c59cd9aa25d874a3f7af9fcca049912e7083a..8777f180fd9137f2c0633c203b21f5e164c7a8a3 100644 (file)
@@ -20,3 +20,14 @@ HELP: vm
 HELP: vm-field-offset
 { $values { "field" string } { "offset" number } }
 { $description "Gets the offset in bytes to the named virtual machine field." } ;
+
+HELP: gc-info
+{ $class-description "A struct that defines the sizes of the garbage collection maps for a word. It has the following slots:"
+  { $table
+    { { $slot "scrub-d-count" } "Number of datastack scrub bits per callsite." }
+    { { $slot "scrub-r-count" } "Number of retainstack scrub bits per callsite." }
+    { { $slot "gc-root-count" } "Number of gc root bits per callsite." }
+    { { $slot "derived-root-count" } "Number of derived roots per callsite." }
+    { { $slot "return-address-count" } "Number of gc callsites." }
+  }
+} ;
index 3f18699c4d3e0ba48e54a204e7c1eda4ba40ac39..1c64b0ed9b4b83f8a401c985ebea75e0e7e7550a 100644 (file)
@@ -91,3 +91,10 @@ STRUCT: dispatch-statistics
 
 { pic-tag-count cell }
 { pic-tuple-count cell } ;
+
+STRUCT: gc-info
+    { scrub-d-count uint read-only }
+    { scrub-r-count uint read-only }
+    { gc-root-count uint read-only }
+    { derived-root-count uint read-only }
+    { return-address-count uint read-only } ;
index 9013099e47a59c3afc1ccb6fed88af70e2b2ff8d..c7bace5be5ec2854f975dcc431817f88717e40a5 100644 (file)
@@ -4,17 +4,6 @@ IN: tools.gc-decode
 ARTICLE: "tools.gc-decode" "GC maps decoder"
 "A vocab that disassembles words gc maps. It's useful to have when debugging garbage collection issues." ;
 
-HELP: gc-info
-{ $class-description "A struct that defines the sizes of the garbage collection maps for a word. It has the following slots:"
-  { $table
-    { { $slot "scrub-d-count" } "Number of datastack scrub bits per callsite." }
-    { { $slot "scrub-r-count" } "Number of retainstack scrub bits per callsite." }
-    { { $slot "gc-root-count" } "Number of gc root bits per callsite." }
-    { { $slot "derived-root-count" } "Number of derived roots per callsite." }
-    { { $slot "return-address-count" } "Number of gc callsites." }
-  }
-} ;
-
 HELP: word>gc-info
 { $values { "word" word } { "gc-info" gc-info } }
 { $description "Gets the gc-info struct for a word." } ;
index c306cdcad77b87e7122338bb5dfbca644f537060..118ec5c40628c386f777aa139be14e3c6ac9c041 100644 (file)
@@ -1,4 +1,4 @@
-USING: bit-arrays classes.struct tools.gc-decode tools.test ;
+USING: bit-arrays classes.struct tools.gc-decode tools.test vm ;
 QUALIFIED: effects
 QUALIFIED: llvm.types
 QUALIFIED: unix.process
index 461dbc71a6894fa98b0568bc3b499f5ac510db1a..453d08e209293ebdf6f7a080c6bb552adb339ac6 100644 (file)
@@ -1,6 +1,6 @@
 USING: accessors alien alien.c-types alien.data arrays assocs bit-arrays
 bit-arrays.private classes.struct fry grouping kernel math math.statistics
-sequences sequences.repeating words ;
+sequences sequences.repeating vm words ;
 IN: tools.gc-decode
 
 ! Utils
@@ -20,13 +20,6 @@ IN: tools.gc-decode
     [ heap-size * [ >c-ptr alien-address ] dip - <alien> ] 2keep
     c-direct-array-constructor execute( alien len -- seq ) ;
 
-STRUCT: gc-info
-    { scrub-d-count uint read-only }
-    { scrub-r-count uint read-only }
-    { gc-root-count uint read-only }
-    { derived-root-count uint read-only }
-    { return-address-count uint read-only } ;
-
 : bit-counts ( gc-info -- counts )
     struct-slot-values 3 head ;