Minor fixes for B3 IR documentation
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Feb 2016 16:58:41 +0000 (16:58 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Feb 2016 16:58:41 +0000 (16:58 +0000)
https://bugs.webkit.org/show_bug.cgi?id=153782

Reviewed by Michael Saboff.

Fix minor issues that Geoff found.

* docs/b3/intermediate-representation.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@196011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/webkit.org/ChangeLog
Websites/webkit.org/docs/b3/intermediate-representation.html

index 143a720..7ad0d16 100644 (file)
@@ -1,3 +1,14 @@
+2016-02-02  Filip Pizlo  <fpizlo@apple.com>
+
+        Minor fixes for B3 IR documentation
+        https://bugs.webkit.org/show_bug.cgi?id=153782
+
+        Reviewed by Michael Saboff.
+
+        Fix minor issues that Geoff found.
+
+        * docs/b3/intermediate-representation.html:
+
 2016-01-30  Filip Pizlo  <fpizlo@apple.com>
 
         B3 documentation style shouldn't have hacks for h1
index 1764e23..7c015f3 100644 (file)
     <h2>Stack Slot</h2>
 
     <p>B3 exposes the concept of stack-allocated data and gives the client a lot of control.
-      You can force stack slots to end up at a particular offset from the frame pointer, though
-      this is very dangerous.  After compilation is done, you can get the selected frame pointer
-      offset from any stack slot.  Usually, you let B3 select where stack slots go, and then use
-      the StackSlot API to get its FP offset after compilation.</p>
+      By default, stack slots get allocated wherever B3 chooses. It will try to pack them as
+      much as possible. After compilation is done, you can retrieve each stack slot's location
+      in the form of an offset from the frame pointer.</p>
+
+    <p>You can force stack slots to end up at a particular offset from the frame pointer, though
+      this is very dangerous.  For example, B3 assumes that it can use the slots closest to the
+      frame pointer for callee-saves, and currently when you force something to a particular
+      frame pointer offset, there is no mechanism to notice that this space is also being used
+      for callee-saves.  Therefore, we recommend not using the frame pointer offset forcing
+      feature unless you know a lot about the ABI and you have no other choice.</p>
 
     <p>Stack slots are also used for creating non-SSA variables with the intention of having B3
-      convert them into SSA.  There are two kinds of stack lots.</p>
+      convert them into SSA.  There are two kinds of stack slots.</p>
 
     <dl>
       <dt>Anonymous</dt>
       predecessors.  Each basic block may have zero or more successors.  The successors are
       controlled by the basic block's last Value, which must be a ControlValue instance.</p>
 
-    <p>Each basic block contains a Vector&lt;Value*&gt; as the contents of the block.</p>
+    <p>Each basic block contains a Vector&lt;Value*&gt; as the contents of the block. Control
+      flow inside the block is implicit based on the order of Values in the vector.</p>
 
     <h2>Opcodes</h2>