Changeset 196011 in webkit
- Timestamp:
- Feb 2, 2016 8:58:41 AM (8 years ago)
- Location:
- trunk/Websites/webkit.org
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Websites/webkit.org/ChangeLog
r195921 r196011 1 2016-02-02 Filip Pizlo <fpizlo@apple.com> 2 3 Minor fixes for B3 IR documentation 4 https://bugs.webkit.org/show_bug.cgi?id=153782 5 6 Reviewed by Michael Saboff. 7 8 Fix minor issues that Geoff found. 9 10 * docs/b3/intermediate-representation.html: 11 1 12 2016-01-30 Filip Pizlo <fpizlo@apple.com> 2 13 -
trunk/Websites/webkit.org/docs/b3/intermediate-representation.html
r195903 r196011 89 89 90 90 <p>B3 exposes the concept of stack-allocated data and gives the client a lot of control. 91 You can force stack slots to end up at a particular offset from the frame pointer, though 92 this is very dangerous. After compilation is done, you can get the selected frame pointer 93 offset from any stack slot. Usually, you let B3 select where stack slots go, and then use 94 the StackSlot API to get its FP offset after compilation.</p> 91 By default, stack slots get allocated wherever B3 chooses. It will try to pack them as 92 much as possible. After compilation is done, you can retrieve each stack slot's location 93 in the form of an offset from the frame pointer.</p> 94 95 <p>You can force stack slots to end up at a particular offset from the frame pointer, though 96 this is very dangerous. For example, B3 assumes that it can use the slots closest to the 97 frame pointer for callee-saves, and currently when you force something to a particular 98 frame pointer offset, there is no mechanism to notice that this space is also being used 99 for callee-saves. Therefore, we recommend not using the frame pointer offset forcing 100 feature unless you know a lot about the ABI and you have no other choice.</p> 95 101 96 102 <p>Stack slots are also used for creating non-SSA variables with the intention of having B3 97 convert them into SSA. There are two kinds of stack lots.</p>103 convert them into SSA. There are two kinds of stack slots.</p> 98 104 99 105 <dl> … … 119 125 controlled by the basic block's last Value, which must be a ControlValue instance.</p> 120 126 121 <p>Each basic block contains a Vector<Value*> as the contents of the block.</p> 127 <p>Each basic block contains a Vector<Value*> as the contents of the block. Control 128 flow inside the block is implicit based on the order of Values in the vector.</p> 122 129 123 130 <h2>Opcodes</h2>
Note: See TracChangeset
for help on using the changeset viewer.