<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/runtime/GC, branch release_23</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/runtime/GC?h=release_23</id>
<link rel='self' href='https://git.amat.us/llvm/atom/runtime/GC?h=release_23'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2008-01-24T05:16:36Z</updated>
<entry>
<title>Fixing the stack walker.</title>
<updated>2008-01-24T05:16:36Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2008-01-24T05:16:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=bcb265e2af6052895c400fe0d5729a23a82a5542'/>
<id>urn:sha1:bcb265e2af6052895c400fe0d5729a23a82a5542</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46302 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>With this patch, the LowerGC transformation becomes the</title>
<updated>2008-01-07T01:30:53Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2008-01-07T01:30:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=8fa89291774a29ee30adb9d0fd01655c84eaac13'/>
<id>urn:sha1:8fa89291774a29ee30adb9d0fd01655c84eaac13</id>
<content type='text'>
ShadowStackCollector, which additionally has reduced overhead with
no sacrifice in portability.

Considering a function @fun with 8 loop-local roots,
ShadowStackCollector introduces the following overhead
(x86):

; shadowstack prologue
        movl    L_llvm_gc_root_chain$non_lazy_ptr, %eax
        movl    (%eax), %ecx
        movl    $___gc_fun, 20(%esp)
        movl    $0, 24(%esp)
        movl    $0, 28(%esp)
        movl    $0, 32(%esp)
        movl    $0, 36(%esp)
        movl    $0, 40(%esp)
        movl    $0, 44(%esp)
        movl    $0, 48(%esp)
        movl    $0, 52(%esp)
        movl    %ecx, 16(%esp)
        leal    16(%esp), %ecx
        movl    %ecx, (%eax)

; shadowstack loop overhead
        (none)

; shadowstack epilogue
        movl    48(%esp), %edx
        movl    %edx, (%ecx)

; shadowstack metadata
        .align  3
___gc_fun:                              # __gc_fun
        .long   8
        .space  4

In comparison to LowerGC:

; lowergc prologue
        movl    L_llvm_gc_root_chain$non_lazy_ptr, %eax
        movl    (%eax), %ecx
        movl    %ecx, 48(%esp)
        movl    $8, 52(%esp)
        movl    $0, 60(%esp)
        movl    $0, 56(%esp)
        movl    $0, 68(%esp)
        movl    $0, 64(%esp)
        movl    $0, 76(%esp)
        movl    $0, 72(%esp)
        movl    $0, 84(%esp)
        movl    $0, 80(%esp)
        movl    $0, 92(%esp)
        movl    $0, 88(%esp)
        movl    $0, 100(%esp)
        movl    $0, 96(%esp)
        movl    $0, 108(%esp)
        movl    $0, 104(%esp)
        movl    $0, 116(%esp)
        movl    $0, 112(%esp)

; lowergc loop overhead
        leal    44(%esp), %eax
        movl    %eax, 56(%esp)
        leal    40(%esp), %eax
        movl    %eax, 64(%esp)
        leal    36(%esp), %eax
        movl    %eax, 72(%esp)
        leal    32(%esp), %eax
        movl    %eax, 80(%esp)
        leal    28(%esp), %eax
        movl    %eax, 88(%esp)
        leal    24(%esp), %eax
        movl    %eax, 96(%esp)
        leal    20(%esp), %eax
        movl    %eax, 104(%esp)
        leal    16(%esp), %eax
        movl    %eax, 112(%esp)

; lowergc epilogue
        movl    48(%esp), %edx
        movl    %edx, (%ecx)

; lowergc metadata
        (none)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>remove attribution from a variety of miscellaneous files.</title>
<updated>2007-12-29T22:59:10Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2007-12-29T22:59:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=234d529e582963ad4b5d83b911cd057fe99d1435'/>
<id>urn:sha1:234d529e582963ad4b5d83b911cd057fe99d1435</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45425 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>remove attributions from the rest of the llvm makefiles.</title>
<updated>2007-12-29T20:11:13Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2007-12-29T20:11:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=57360d1f1cede3b26744d0ce3ade814fcc0f332d'/>
<id>urn:sha1:57360d1f1cede3b26744d0ce3ade814fcc0f332d</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45416 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>GarbageCollection.html is expanded to encompass the coming</title>
<updated>2007-09-27T19:31:36Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2007-09-27T19:31:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=326e24fff011f9f5af62bfd2dae964dcd4fd6792'/>
<id>urn:sha1:326e24fff011f9f5af62bfd2dae964dcd4fd6792</id>
<content type='text'>
capabilities. This is a major rewrite and is easier to read en toto
rather than patchwise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42414 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Undo removal of the runtime libraries. While this may have been a bit</title>
<updated>2006-11-17T03:32:33Z</updated>
<author>
<name>Reid Spencer</name>
<email>rspencer@reidspencer.com</email>
</author>
<published>2006-11-17T03:32:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=8b2e1419cf24a33df5a87c99e367528b44dc28cf'/>
<id>urn:sha1:8b2e1419cf24a33df5a87c99e367528b44dc28cf</id>
<content type='text'>
premature, these libraries will be going away for the 2.0 release. Other
arrangements for profiling, gc, etc. should be made in the next few months.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31807 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>In LLVM 2.0 we won't use the runtime libraries as llvm-gcc3 support will</title>
<updated>2006-11-16T23:17:27Z</updated>
<author>
<name>Reid Spencer</name>
<email>rspencer@reidspencer.com</email>
</author>
<published>2006-11-16T23:17:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ac90d5e50b327476dcb468668f8e0eec3fb923d0'/>
<id>urn:sha1:ac90d5e50b327476dcb468668f8e0eec3fb923d0</id>
<content type='text'>
be dropped. This patch pertains to removing the runtime directory from LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31793 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use archive libraries instead of object files for VMCore, BCReader,</title>
<updated>2006-06-01T01:30:27Z</updated>
<author>
<name>Reid Spencer</name>
<email>rspencer@reidspencer.com</email>
</author>
<published>2006-06-01T01:30:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=18c8b49e7d3c94d7f84a4205a19f8761722fc4e5'/>
<id>urn:sha1:18c8b49e7d3c94d7f84a4205a19f8761722fc4e5</id>
<content type='text'>
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28610 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>This never got updated to reflect the project makefile changes</title>
<updated>2005-10-18T18:48:30Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2005-10-18T18:48:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ed069fcf88b327cc3ffe4bcc331942c55923e964'/>
<id>urn:sha1:ed069fcf88b327cc3ffe4bcc331942c55923e964</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23789 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Remove trailing whitespace</title>
<updated>2005-04-21T23:48:37Z</updated>
<author>
<name>Misha Brukman</name>
<email>brukman+llvm@gmail.com</email>
</author>
<published>2005-04-21T23:48:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=fd93908ae8b9684fe71c239e3c6cfe13ff6a2663'/>
<id>urn:sha1:fd93908ae8b9684fe71c239e3c6cfe13ff6a2663</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
