<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/Transforms/Scalar, branch stable</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/Transforms/Scalar?h=stable</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/Transforms/Scalar?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-04-01T18:13:05Z</updated>
<entry>
<title>Correct assertion condition</title>
<updated>2013-04-01T18:13:05Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-04-01T18:13:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=ad26993e1a9b147c3ca4b170ab2eba260f89a1ac'/>
<id>urn:sha1:ad26993e1a9b147c3ca4b170ab2eba260f89a1ac</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178484 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Implement XOR reassociation. It is based on following rules:</title>
<updated>2013-03-30T02:15:01Z</updated>
<author>
<name>Shuxin Yang</name>
<email>shuxin.llvm@gmail.com</email>
</author>
<published>2013-03-30T02:15:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=2d1001064989b7fa79507816fc17d467fc00a2f2'/>
<id>urn:sha1:2d1001064989b7fa79507816fc17d467fc00a2f2</id>
<content type='text'>
  rule 1: (x | c1) ^ c2 =&gt; (x &amp; ~c1) ^ (c1^c2),
     only useful when c1=c2
  rule 2: (x &amp; c1) ^ (x &amp; c2) = (x &amp; (c1^c2))
  rule 3: (x | c1) ^ (x | c2) = (x &amp; c3) ^ c3 where c3 = c1 ^ c2
  rule 4: (x | c1) ^ (x &amp; c2) =&gt; (x &amp; c3) ^ c1, where c3 = ~c1 ^ c2

 It reduces an application's size (in terms of # of instructions) by 8.9%.
 Reviwed by Pete Cooper. Thanks a lot!

 rdar://13212115  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178409 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Minor cleanups. No functionality change.</title>
<updated>2013-03-24T09:56:28Z</updated>
<author>
<name>Jakub Staszak</name>
<email>kubastaszak@gmail.com</email>
</author>
<published>2013-03-24T09:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=6f7becfe23f38e8c28e9422d883263974058aeed'/>
<id>urn:sha1:6f7becfe23f38e8c28e9422d883263974058aeed</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177837 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use dyn_cast instead of isa &amp;&amp; cast.</title>
<updated>2013-03-24T09:25:47Z</updated>
<author>
<name>Jakub Staszak</name>
<email>kubastaszak@gmail.com</email>
</author>
<published>2013-03-24T09:25:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=65a47ff55465096b272086356fdc06e02c8559dc'/>
<id>urn:sha1:65a47ff55465096b272086356fdc06e02c8559dc</id>
<content type='text'>
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177836 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[SROA] Prefix names using a custom IRBuilder inserter.</title>
<updated>2013-03-21T09:52:18Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-03-21T09:52:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d647ec52396ed0f1886537114ab587c71fc43565'/>
<id>urn:sha1:d647ec52396ed0f1886537114ab587c71fc43565</id>
<content type='text'>
The key part of this is ensuring that name prefixes remain in a Twine
form until we get to a point where we can nuke them under NDEBUG. This
is tricky using the old APIs as they played fast and loose with Twine,
which is prone to serious error. The inserter is much cleaner as it is
actually in the call stack leading to the setName call, and so has
a good opportunity to prepend the prefix.

This matters more than you might imagine because most runs over an
alloca find a single partition, and rewrite 3 or 4 instructions
referring to it. As a consequence doing this lazily and exclusively with
Twine allows the optimizer to delete more of it and shaves another 2% to
3% off of the release build's SROA run time for PR15412. I also think
the APIs are cleaner, and the use of Twine is more reliable, so
I consider it a win-win despite the churn required to reach this state.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177631 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>simplify-libcalls: Removed unused variable</title>
<updated>2013-03-21T02:44:07Z</updated>
<author>
<name>Meador Inge</name>
<email>meadori@codesourcery.com</email>
</author>
<published>2013-03-21T02:44:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a2c6256b2afc7943d55c0965f3bb081f7a893b53'/>
<id>urn:sha1:a2c6256b2afc7943d55c0965f3bb081f7a893b53</id>
<content type='text'>
The 'Modified' variable should have been removed from SimplifyLibCalls
in r177619, but was missed.  This commit removes it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177622 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Move library call prototype attribute inference to functionattrs</title>
<updated>2013-03-21T00:55:59Z</updated>
<author>
<name>Meador Inge</name>
<email>meadori@codesourcery.com</email>
</author>
<published>2013-03-21T00:55:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=cf47ce616c53040cb8aa09eff9dc0b693e571842'/>
<id>urn:sha1:cf47ce616c53040cb8aa09eff9dc0b693e571842</id>
<content type='text'>
The simplify-libcalls pass implemented a doInitialization hook to infer
function prototype attributes for well-known functions.  Given that the
simplify-libcalls pass is going away *and* that the functionattrs pass
is already in place to deduce function attributes, I am moving this logic
to the functionattrs pass.  This approach was discussed during patch
review:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/157465.html.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177619 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix a silly search-and-replace goof with r177495 that only broke</title>
<updated>2013-03-20T07:40:56Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-03-20T07:40:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=fd060a94a46db75c45b2a1789a8bc597a03e6ac1'/>
<id>urn:sha1:fd060a94a46db75c45b2a1789a8bc597a03e6ac1</id>
<content type='text'>
non-release builds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177498 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>[SROA] Don't preserve the IR names in release builds.</title>
<updated>2013-03-20T07:30:36Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-03-20T07:30:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=05c6d0b16f8c442a29b03b312f9fb6910955a8ec'/>
<id>urn:sha1:05c6d0b16f8c442a29b03b312f9fb6910955a8ec</id>
<content type='text'>
This is espcially important because the new SROA pass goes to great
lengths to provide helpful names for debugging, and as a consequence
they can become very slow to render.

Good for between 5% and 15% of the SROA runtime on some slow test cases
such as the one in PR15412.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177495 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Move the endif to the correct line so we don't have warnings about</title>
<updated>2013-03-20T06:47:00Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-03-20T06:47:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=30ee9c2093897a0edfe3bd23e6c754c4d88cbd88'/>
<id>urn:sha1:30ee9c2093897a0edfe3bd23e6c754c4d88cbd88</id>
<content type='text'>
unused statistics variables.

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