<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/Transforms/InstSimplify, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-01-14T13:41:06+00:00</updated>
<entry>
<title>[InstSimplify] add tests for vector select; NFC</title>
<updated>2020-01-14T13:41:06+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2020-01-14T13:40:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cfe2fab708de3a1d8e05a829a132f335a189acc9'/>
<id>urn:sha1:cfe2fab708de3a1d8e05a829a132f335a189acc9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[InstSimplify] move tests for select from InstCombine; NFC</title>
<updated>2020-01-13T14:13:21+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2020-01-13T14:10:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=26d2ace9e2305266be888e15392be29e3145163d'/>
<id>urn:sha1:26d2ace9e2305266be888e15392be29e3145163d</id>
<content type='text'>
InstCombine has transforms that would enable these simplifications
in an indirect way, but those transforms are unsafe and likely to
be removed.
</content>
</entry>
<entry>
<title>[InstSimplify] select Cond, true, false --&gt; Cond</title>
<updated>2020-01-09T14:04:20+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2020-01-09T14:02:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f53b38d12a7b9c6754d5bc91483efab935b5c012'/>
<id>urn:sha1:f53b38d12a7b9c6754d5bc91483efab935b5c012</id>
<content type='text'>
This is step 1 of damage control assuming that we need to remove several
over-reaching folds for select-of-booleans because they can cause
miscompiles as shown in D72396.

The scalar case seems obviously safe:
https://rise4fun.com/Alive/jSj

And I don't think there's any danger for vectors either - if the
condition is poisoned, then the select must be poisoned too, so undef
elements don't make any difference.

Differential Revision: https://reviews.llvm.org/D72412
</content>
</entry>
<entry>
<title>[InstSimplify] add tests for select of true/false; NFC</title>
<updated>2020-01-08T21:22:48+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2020-01-08T21:22:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0b8ce37d64747ba7d8908626256e2b5e58f7b396'/>
<id>urn:sha1:0b8ce37d64747ba7d8908626256e2b5e58f7b396</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[ValueTracking] isKnownNonZero() should take non-null-ness assumptions into consideration (PR43267)</title>
<updated>2019-12-19T22:47:57+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2019-12-18T17:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=047186cc986f5bb53ce716dfe363ba517b7d0ed8'/>
<id>urn:sha1:047186cc986f5bb53ce716dfe363ba517b7d0ed8</id>
<content type='text'>
Summary:
It is pretty common to assume that something is not zero.
Even optimizer itself sometimes emits such assumptions
(e.g. `addAssumeNonNull()` in `PromoteMemoryToRegister.cpp`).

But we currently don't deal with such assumptions :)
The only way `isKnownNonZero()` handles assumptions is
by calling `computeKnownBits()` which calls `computeKnownBitsFromAssume()`.
But `x != 0` does not tell us anything about set bits,
it only says that there are *some* set bits.
So naturally, `KnownBits` does not get populated,
and we fail to make use of this assumption.

I propose to deal with this special case by special-casing it
via adding a `isKnownNonZeroFromAssume()` that returns boolean
when there is an applicable assumption.

While there, we also deal with other predicates,
mainly if the comparison is with constant.

Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=43267 | PR43267 ]].

Differential Revision: https://reviews.llvm.org/D71660
</content>
</entry>
<entry>
<title>[NFC][InstCombine] Add some more non-zero assumption variants (D71660)</title>
<updated>2019-12-19T18:08:54+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2019-12-19T17:13:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=34dd49c86a46eda5b767a2118d092178c14153c3'/>
<id>urn:sha1:34dd49c86a46eda5b767a2118d092178c14153c3</id>
<content type='text'>
https://rise4fun.com/Alive/6yR
</content>
</entry>
<entry>
<title>[InstSimplify] fold splat of inserted constant to vector constant</title>
<updated>2019-12-15T14:32:03+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2019-12-15T14:32:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=6080387f136af5a51bbc310abb08c7158d7cd9d2'/>
<id>urn:sha1:6080387f136af5a51bbc310abb08c7158d7cd9d2</id>
<content type='text'>
shuf (inselt ?, C, IndexC), undef, &lt;IndexC, IndexC...&gt; --&gt; &lt;C, C...&gt;

This is another missing shuffle fold pattern uncovered by the
shuffle correctness fix from D70246.

The problem was visible in the post-commit thread example, but
we managed to overcome the limitation for that particular case
with D71220.

This is something like the inverse of the previous fix - there
we didn't demand the inserted scalar, and here we are only
demanding an inserted scalar.

Differential Revision: https://reviews.llvm.org/D71488
</content>
</entry>
<entry>
<title>[InstSimplify] improve test coverage for insert+splat; NFC</title>
<updated>2019-12-13T19:03:54+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2019-12-13T19:03:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=940600ae4172d34232674d7e6f191dcff009df74'/>
<id>urn:sha1:940600ae4172d34232674d7e6f191dcff009df74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[InstSimplify] add tests for insert constant + splat; NFC</title>
<updated>2019-12-10T22:16:58+00:00</updated>
<author>
<name>Sanjay Patel</name>
<email>spatel@rotateright.com</email>
</author>
<published>2019-12-10T16:16:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=252d3b9805f8064837630deb282f653ac2978096'/>
<id>urn:sha1:252d3b9805f8064837630deb282f653ac2978096</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[ValueTracking] Allow context-sensitive nullness check for non-pointers</title>
<updated>2019-12-09T21:15:52+00:00</updated>
<author>
<name>Johannes Doerfert</name>
<email>johannes@jdoerfert.de</email>
</author>
<published>2019-12-09T04:11:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=a7d992c0f2d235c67f04160405c5c5606408d4b1'/>
<id>urn:sha1:a7d992c0f2d235c67f04160405c5c5606408d4b1</id>
<content type='text'>
Summary:
Same as D60846 and D69571 but with a fix for the problem encountered
after them. Both times it was a missing context adjustment in the
handling of PHI nodes.

The reproducers created from the bugs that caused the old commits to be
reverted are included.

Reviewers: nikic, nlopes, mkazantsev, spatel, dlrobertson, uabelho, hakzsam, hans

Subscribers: hiraditya, bollu, asbirlea, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71181
</content>
</entry>
</feed>
