diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-11-29 19:08:23 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-11-29 19:08:23 +0000 |
commit | bdef6feef478d41707d225caccd25bc6af17081b (patch) | |
tree | a9505b101f78ef5d482b12310c91f09fb8c518d9 /docs | |
parent | d3a38ccfbb6be0edad037961df77649db2cb9597 (diff) | |
download | llvm-bdef6feef478d41707d225caccd25bc6af17081b.tar.gz llvm-bdef6feef478d41707d225caccd25bc6af17081b.tar.bz2 llvm-bdef6feef478d41707d225caccd25bc6af17081b.tar.xz |
Release notes for segmented stacks.
Patch by Sanjoy Das.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145416 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ReleaseNotes.html | 5 | ||||
-rw-r--r-- | docs/SegmentedStacks.html | 8 |
2 files changed, 5 insertions, 8 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index c6657b94d6..faf9a4bd2b 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -936,7 +936,10 @@ be used to verify some algorithms. make it run faster:</p> <ul> -<li>XXX: Segmented stacks.</li> +<li>LLVM can now produce code that works with libgcc + to <a href="SegmentedStacks.html">dynamically allocate stack + segments</a>, as opposed to allocating a worst-case chunk of + virtual memory for each thread.</li> <li>LLVM generates substantially better code for indirect gotos due to a new tail duplication pass, which can be a substantial performance win for interpreter loops that use them.</li> diff --git a/docs/SegmentedStacks.html b/docs/SegmentedStacks.html index a91b109308..16f5507473 100644 --- a/docs/SegmentedStacks.html +++ b/docs/SegmentedStacks.html @@ -20,18 +20,12 @@ <li><a href="#alloca">Variable Sized Allocas</a></li> </ol> </li> - <li><a href="#results">Results</a> - <ol> - <li><a href="#go">Go on LLVM</a></li> - <li><a href="#abi">Runtime ABI</a></li> - </ol> - </li> </ol> <h2><a name="intro">Introduction</a></h2> <div> <p> - Segmented stack allows stack space to be allocated incrementally than as a monolithic chunk (of some worst case size) at thread initialization. This is done by allocating stack blocks (henceforth called <em>stacklets</em>) and linking them into a doubly linked list. The function prologue is responsible for checking if the current stacklet has enough space for the function to execute; and if not, call into the libgcc runtime to allocate more stack space. Support for segmented stacks on x86 / Linux is currently being worked on. + Segmented stack allows stack space to be allocated incrementally than as a monolithic chunk (of some worst case size) at thread initialization. This is done by allocating stack blocks (henceforth called <em>stacklets</em>) and linking them into a doubly linked list. The function prologue is responsible for checking if the current stacklet has enough space for the function to execute; and if not, call into the libgcc runtime to allocate more stack space. When using <tt>llc</tt>, segmented stacks can be enabled by adding <tt>-segmented-stacks</tt> to the command line. </p> <p> The runtime functionality is <a href="http://gcc.gnu.org/wiki/SplitStacks">already there in libgcc</a>. |