<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/CodeGen/Generic/GC, branch release_25</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/CodeGen/Generic/GC?h=release_25</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/CodeGen/Generic/GC?h=release_25'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2008-10-25T16:28:35Z</updated>
<entry>
<title>Related to PR2911, reject as invalid non-pointer GC roots.</title>
<updated>2008-10-25T16:28:35Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2008-10-25T16:28:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a2cbe6c5b5c781a7c4125792a31d3670a777a3b7'/>
<id>urn:sha1:a2cbe6c5b5c781a7c4125792a31d3670a777a3b7</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58143 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>For all RUN lines starting with "not", redirect stderr to /dev/null so tests</title>
<updated>2008-06-10T12:57:32Z</updated>
<author>
<name>Matthijs Kooijman</name>
<email>matthijs@stdin.nl</email>
</author>
<published>2008-06-10T12:57:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1cd8f11cc0af051ec06f579647f15485732ec555'/>
<id>urn:sha1:1cd8f11cc0af051ec06f579647f15485732ec555</id>
<content type='text'>
don't fail when (expected) error output is produced. This fixes 17 tests.

While I was there, I also made all RUN lines of the form "not llvm-as..." a bit
more consistent, they now all redirect stderr and stdout to /dev/null and use
input redirect to read their input.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52174 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>sabre brings to my attention that the 'tr' suffix is also obsolete</title>
<updated>2008-05-20T21:00:03Z</updated>
<author>
<name>Gabor Greif</name>
<email>ggreif@gmail.com</email>
</author>
<published>2008-05-20T21:00:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f6cadc440cbf04330b3cda9a3c76728f08035203'/>
<id>urn:sha1:f6cadc440cbf04330b3cda9a3c76728f08035203</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51349 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Rename the last test with .llx extension to .ll, resolve duplicate test by renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too.</title>
<updated>2008-05-20T19:52:04Z</updated>
<author>
<name>Gabor Greif</name>
<email>ggreif@gmail.com</email>
</author>
<published>2008-05-20T19:52:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=722243bd402aaed698a279cb323cf37554befd53'/>
<id>urn:sha1:722243bd402aaed698a279cb323cf37554befd53</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51328 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Setting GlobalDirective in TargetAsmInfo by default rather than</title>
<updated>2008-01-07T02:31:11Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2008-01-07T02:31:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=572742e876478d3ec7ff0750c0473d7621804b15'/>
<id>urn:sha1:572742e876478d3ec7ff0750c0473d7621804b15</id>
<content type='text'>
providing a misleading facility. It's used once in the MIPS backend
and hardcoded as "\t.globl\t" everywhere else.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45676 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>Tests for changes made in r45356, where IPO optimizations would drop</title>
<updated>2007-12-26T02:47:37Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2007-12-26T02:47:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e86ce7d94abaf7883a5d84dcb9a79c118b63672b'/>
<id>urn:sha1:e86ce7d94abaf7883a5d84dcb9a79c118b63672b</id>
<content type='text'>
collector algorithms.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45357 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>GC poses hazards to the inliner. Consider:</title>
<updated>2007-12-25T03:10:07Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2007-12-25T03:10:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=0e13821c96937830ec817f08095c3cef1fdcac8d'/>
<id>urn:sha1:0e13821c96937830ec817f08095c3cef1fdcac8d</id>
<content type='text'>
    define void @f() {
            ...
            call i32 @g()
            ...
    }

    define void @g() {
            ...
    }

The hazards are:

  - @f and @g have GC, but they differ GC. Inlining is invalid. This
    may never occur.
  - @f has no GC, but @g does. g's GC must be propagated to @f.

The other scenarios are safe:

  - @f and @g have the same GC.
  - @f and @g have no GC.
  - @g has no GC.

This patch adds inliner checks for the former two scenarios.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45351 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Noting and enforcing that GC intrinsics are valid only within a</title>
<updated>2007-12-25T02:31:26Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2007-12-25T02:31:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e1433f24cf714c49b266e8cefdbbb8a464ffcb8e'/>
<id>urn:sha1:e1433f24cf714c49b266e8cefdbbb8a464ffcb8e</id>
<content type='text'>
function with GC.

This will catch the error when the inliner inlines a function with
GC into a caller with no GC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45350 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Adjusting verification of "llvm.gc*" intrinsic prototypes to match</title>
<updated>2007-12-25T02:02:10Z</updated>
<author>
<name>Gordon Henriksen</name>
<email>gordonhenriksen@mac.com</email>
</author>
<published>2007-12-25T02:02:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=27acd3a999ec3790e6af1d6416295caab5033320'/>
<id>urn:sha1:27acd3a999ec3790e6af1d6416295caab5033320</id>
<content type='text'>
LangRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45349 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
