<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/LoopIdiom, branch release_30</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/LoopIdiom?h=release_30</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/LoopIdiom?h=release_30'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2011-09-27T20:39:19Z</updated>
<entry>
<title>Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit.</title>
<updated>2011-09-27T20:39:19Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2011-09-27T20:39:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a9390a4d5f5d568059a80970d22194b165d097a7'/>
<id>urn:sha1:a9390a4d5f5d568059a80970d22194b165d097a7</id>
<content type='text'>
If someone prefers %tmp42 to %42, run instnamer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140634 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>A real testcase for r135286.</title>
<updated>2011-07-15T20:58:38Z</updated>
<author>
<name>Chad Rosier</name>
<email>mcrosier@apple.com</email>
</author>
<published>2011-07-15T20:58:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=72d6f34af1749a7242bde9c550b5cff96958e6a6'/>
<id>urn:sha1:72d6f34af1749a7242bde9c550b5cff96958e6a6</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135299 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add testcase for r135286.</title>
<updated>2011-07-15T19:06:58Z</updated>
<author>
<name>Chad Rosier</name>
<email>mcrosier@apple.com</email>
</author>
<published>2011-07-15T19:06:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=96a7db084f113c8908400767155510811f79985d'/>
<id>urn:sha1:96a7db084f113c8908400767155510811f79985d</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135291 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix PR9815: I was trying to get out of "generating code and then</title>
<updated>2011-05-22T17:39:56Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-05-22T17:39:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=4f81b5419295cfc26a1349d6c23a55c6d2a683e1'/>
<id>urn:sha1:4f81b5419295cfc26a1349d6c23a55c6d2a683e1</id>
<content type='text'>
failing to form a memset, then having to delete it" but my approximation
isn't safe for self recurrent loops.  Instead of doign a hack, just
do it the right way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131858 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Preserve line no. info.</title>
<updated>2011-03-07T22:43:45Z</updated>
<author>
<name>Devang Patel</name>
<email>dpatel@apple.com</email>
</author>
<published>2011-03-07T22:43:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cd77a50e638be5e7153ebe2a8ba875de7df48bea'/>
<id>urn:sha1:cd77a50e638be5e7153ebe2a8ba875de7df48bea</id>
<content type='text'>
Radar 9097659


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127182 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byte</title>
<updated>2011-02-19T19:56:44Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-02-19T19:56:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=80e8b506b8134d63dc3cb6211cccc34be4b19d40'/>
<id>urn:sha1:80e8b506b8134d63dc3cb6211cccc34be4b19d40</id>
<content type='text'>
constant, including globals.  This makes us generate much more "pretty" pattern
globals as well because it doesn't break it down to an array of bytes all the
time.

This enables us to handle stores of relocatable globals.  This kicks in about
48 times in 254.gap, giving us stuff like this:

@.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct
.TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16

...
  call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8*
), i64 %tmp75) nounwind



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126044 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Stores of null pointers should turn into memset, we weren't recognizing</title>
<updated>2011-02-19T19:35:49Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-02-19T19:35:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=41bfbb0a8776674c486682cbf2aa80f15abfef68'/>
<id>urn:sha1:41bfbb0a8776674c486682cbf2aa80f15abfef68</id>
<content type='text'>
them as splat values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126041 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Implement rdar://9009151, transforming strided loop stores of</title>
<updated>2011-02-19T19:31:39Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-02-19T19:31:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=3a393728a62122d7009d8e2cbe52a221874e576a'/>
<id>urn:sha1:3a393728a62122d7009d8e2cbe52a221874e576a</id>
<content type='text'>
unsplatable values into memset_pattern16 when it is available
(recent darwins).  This transforms lots of strided loop stores
of ints for example, like 5 in vpr:

  Formed memset:   call void @memset_pattern16(i8* %4, i8* getelementptr inbounds ([16 x i8]* @.memset_pattern9, i32 0, i32 0), i64 %tmp25)
    from store to: {%3,+,4}&lt;%11&gt; at:   store i32 3, i32* %scevgep, align 4, !tbaa !4




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126040 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Teach loop-idiom to turn a loop containing a memset into a larger memset</title>
<updated>2011-01-04T07:46:33Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-01-04T07:46:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e41d3c015ce5cafde305d9a6d9baaae1c41bf46a'/>
<id>urn:sha1:e41d3c015ce5cafde305d9a6d9baaae1c41bf46a</id>
<content type='text'>
when safe.

The testcase is basically this nested loop:
void foo(char *X) {
  for (int i = 0; i != 100; ++i) 
    for (int j = 0; j != 100; ++j)
      X[j+i*100] = 0;
}

which gets turned into a single memset now.  clang -O3 doesn't optimize
this yet though due to a phase ordering issue I haven't analyzed yet.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122806 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>fix a miscompilation of tramp3d-v4: when forming a memcpy, we have to make</title>
<updated>2011-01-02T21:14:18Z</updated>
<author>
<name>Chris Lattner</name>
<email>sabre@nondot.org</email>
</author>
<published>2011-01-02T21:14:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=63f9c3c49ac7011e6366fbec42716f3f70f1beee'/>
<id>urn:sha1:63f9c3c49ac7011e6366fbec42716f3f70f1beee</id>
<content type='text'>
sure that the loop we're promoting into a memcpy doesn't mutate the input
of the memcpy.  Before we were just checking that the dest of the memcpy
wasn't mod/ref'd by the loop.


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