<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/SimplifyCFG, branch stable</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=stable</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/SimplifyCFG?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-03-11T20:53:00Z</updated>
<entry>
<title>Don't remove a landing pad if the invoke requires a table entry.</title>
<updated>2013-03-11T20:53:00Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2013-03-11T20:53:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d5bb20805e03cff03bfa3f85f189cbc8fb4a769a'/>
<id>urn:sha1:d5bb20805e03cff03bfa3f85f189cbc8fb4a769a</id>
<content type='text'>
An invoke may require a table entry. For instance, when the function it calls
is expected to throw.
&lt;rdar://problem/13360379&gt;


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176827 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>SimplifyCFG fix for volatile load/store.</title>
<updated>2013-03-07T01:03:35Z</updated>
<author>
<name>Andrew Trick</name>
<email>atrick@apple.com</email>
</author>
<published>2013-03-07T01:03:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=119003f2a22ee7c4f78fed5710f98edb36b237b5'/>
<id>urn:sha1:119003f2a22ee7c4f78fed5710f98edb36b237b5</id>
<content type='text'>
Fixes rdar:13349374.

Volatile loads and stores need to be preserved even if the language
standard says they are undefined. "volatile" in this context means "get
out of the way compiler, let my platform handle it".

Additionally, this is the only way I know of with llvm to write to the
first page (when hardware allows) without dropping to assembly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176599 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Use references to attribute groups on the call/invoke instructions.</title>
<updated>2013-02-22T09:09:42Z</updated>
<author>
<name>Bill Wendling</name>
<email>isanbard@gmail.com</email>
</author>
<published>2013-02-22T09:09:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=351b7a10e2560a835759748c58da09e53207b39d'/>
<id>urn:sha1:351b7a10e2560a835759748c58da09e53207b39d</id>
<content type='text'>
Listing all of the attributes for the callee of a call/invoke instruction is way
too much and makes the IR unreadable. Use references to attributes instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175877 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Filecheckized 2x tests in SimplifyCFG and removed their date prefix to fit with current llvm style for test names.</title>
<updated>2013-01-31T01:04:23Z</updated>
<author>
<name>Michael Gottesman</name>
<email>mgottesman@apple.com</email>
</author>
<published>2013-01-31T01:04:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=67dad63de642cb4d94928eae5d3568268e3398bd'/>
<id>urn:sha1:67dad63de642cb4d94928eae5d3568268e3398bd</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174011 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Re-revert r173342, without losing the compile time improvements, flat</title>
<updated>2013-01-27T06:42:03Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-01-27T06:42:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=455151e4f7b6dc264183ecc892a2f9678ff5fe46'/>
<id>urn:sha1:455151e4f7b6dc264183ecc892a2f9678ff5fe46</id>
<content type='text'>
out bug fixes, or functionality preserving refactorings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173610 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Switch this code away from Value::isUsedInBasicBlock. That code either</title>
<updated>2013-01-25T05:40:09Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-01-25T05:40:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=baf868b9b8d187744d183d57ef3cbb2a44ca047a'/>
<id>urn:sha1:baf868b9b8d187744d183d57ef3cbb2a44ca047a</id>
<content type='text'>
loops over instructions in the basic block or the use-def list of the
value, neither of which are really efficient when repeatedly querying
about values in the same basic block.

What's more, we already know that the CondBB is small, and so we can do
a much more efficient test by counting the uses in CondBB, and seeing if
those account for all of the uses.

Finally, we shouldn't blanket fail on any such instruction, instead we
should conservatively assume that those instructions are part of the
cost.

Note that this actually fixes a bug in the pass because
isUsedInBasicBlock has a really terrible bug in it. I'll fix that in my
next commit, but the fix for it would make this code suddenly take the
compile time hit I thought it already was taking, so I wanted to go
ahead and migrate this code to a faster &amp; better pattern.

The bug in isUsedInBasicBlock was also causing other tests to test the
wrong thing entirely: for example we weren't actually disabling
speculation for floating point operations as intended (and tested), but
the test passed because we failed to speculate them due to the
isUsedInBasicBlock failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173417 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Reapply chandlerc's r173342 now that the miscompile it was triggering is fixed.</title>
<updated>2013-01-24T16:44:25Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-01-24T16:44:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d5a80c7358d01cde9e166bebc8a3ffa0eca3aa54'/>
<id>urn:sha1:d5a80c7358d01cde9e166bebc8a3ffa0eca3aa54</id>
<content type='text'>
Original commit message:
Plug TTI into the speculation logic, giving it a real cost interface
that can be specialized by targets.

The goal here is not to be more aggressive, but to just be more accurate
with very obvious cases. There are instructions which are known to be
truly free and which were not being modeled as such in this code -- see
the regression test which is distilled from an inner loop of zlib.

Everywhere the TTI cost model is insufficiently conservative I've added
explicit checks with FIXME comments to go add proper modelling of these
cost factors.

If this causes regressions, the likely solution is to make TTI even more
conservative in its cost estimates, but test cases will help here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173357 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Revert r173342 temporarily. It appears to cause a very late miscompile</title>
<updated>2013-01-24T13:24:24Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-01-24T13:24:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=eacef325c6412820a377fe4f853eb9c7c23db9ee'/>
<id>urn:sha1:eacef325c6412820a377fe4f853eb9c7c23db9ee</id>
<content type='text'>
of stage2 in a bootstrap. Still investigating....

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173343 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Plug TTI into the speculation logic, giving it a real cost interface</title>
<updated>2013-01-24T12:39:29Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-01-24T12:39:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1f255419d424c85bc5dbb77f530561d46e5197cc'/>
<id>urn:sha1:1f255419d424c85bc5dbb77f530561d46e5197cc</id>
<content type='text'>
that can be specialized by targets.

The goal here is not to be more aggressive, but to just be more accurate
with very obvious cases. There are instructions which are known to be
truly free and which were not being modeled as such in this code -- see
the regression test which is distilled from an inner loop of zlib.

Everywhere the TTI cost model is insufficiently conservative I've added
explicit checks with FIXME comments to go add proper modelling of these
cost factors.

If this causes regressions, the likely solution is to make TTI even more
conservative in its cost estimates, but test cases will help here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173342 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Address a large chunk of this FIXME by accumulating the cost for</title>
<updated>2013-01-24T12:05:17Z</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-01-24T12:05:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=47d8f6dca5a64f642a82d24b9e3cf882b56c5c3e'/>
<id>urn:sha1:47d8f6dca5a64f642a82d24b9e3cf882b56c5c3e</id>
<content type='text'>
unfolded constant expressions rather than checking each one
independently.

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