]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.cfg.linear-scan.*: stub docs and tests
authorBjörn Lindqvist <bjourne@gmail.com>
Sun, 16 Nov 2014 11:12:14 +0000 (12:12 +0100)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 16 Nov 2014 14:25:54 +0000 (06:25 -0800)
basis/compiler/cfg/linear-scan/allocation/state/state.factor
basis/compiler/cfg/linear-scan/assignment/assignment-docs.factor
basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor [new file with mode: 0644]
basis/compiler/cfg/linear-scan/assignment/assignment.factor

index 476e0d307f88823dadddec41b61b64db4c969ae9..5415409ba3d8ef7dc4c544a3c43912c3c3b57c87 100644 (file)
@@ -130,7 +130,6 @@ SYMBOL: unhandled-intervals
 ! Minheap of sync points which still need to be processed
 SYMBOL: unhandled-sync-points
 
-! Mapping from vregs to spill slots
 SYMBOL: spill-slots
 
 : assign-spill-slot ( coalesced-vreg rep -- spill-slot )
index b44dbe393e895ec2f9e3c29d367c63502a6702c6..8b758b56ef415cf17d61ba9340c33d500cb570be 100644 (file)
@@ -7,8 +7,13 @@ HELP: assign-registers-in-insn
 
 HELP: assign-gc-roots
 { $values { "gc-map" gc-map } }
-{ $description "Assigns spill slots for all gc roots in a gc map." }
-{ $see-also spill-slot } ;
+{ $description "Assigns spill slots for all gc roots in a gc map." } ;
+
+HELP: assign-derived-roots
+{ $values { "gc-map" gc-map } }
+{ $description "Assigns pairs of spill slots for all derived roots in a gc map." } ;
+
+{ assign-gc-roots assign-derived-roots } related-words
 
 HELP: vreg>reg
 { $values { "vreg" "virtaul register" } { "reg" "register" } }
diff --git a/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor b/basis/compiler/cfg/linear-scan/assignment/assignment-tests.factor
new file mode 100644 (file)
index 0000000..22d2775
--- /dev/null
@@ -0,0 +1,10 @@
+USING: compiler.cfg.instructions compiler.cfg.linear-scan.assignment
+compiler.cfg.linear-scan.live-intervals cpu.x86.assembler.operands make
+tools.test ;
+IN: compiler.cfg.linear-scan.assignment.tests
+
+{ { T{ ##spill { src RAX } } } } [
+    [
+        T{ live-interval-state { vreg 1234 } { reg RAX } } insert-spill
+    ] { } make
+] unit-test
index 85eaf37f95033950777c7ec001f3beae57c00d69..43feb6c3a39dc5ab157bf4b476095c8e354b7029 100644 (file)
@@ -31,8 +31,6 @@ SYMBOL: pending-interval-assoc
     vreg>> pending-interval-assoc get delete-at ;
 
 :: vreg>reg ( vreg -- reg )
-    ! If a live vreg is not in the pending set, then it must
-    ! have been spilled.
     vreg leader :> leader
     leader pending-interval-assoc get at* [
         drop leader vreg rep-of lookup-spill-slot