<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/LoopPredication/basic_widenable_branch_guards.ll, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[GuardUtils] Revert llvm::isWidenableBranch change (#66411)</title>
<updated>2023-09-20T09:27:54+00:00</updated>
<author>
<name>Aleksandr Popov</name>
<email>42888396+aleks-tmb@users.noreply.github.com</email>
</author>
<published>2023-09-20T09:27:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9dfe083f0fc37ee03506f3b8b8d68750927f613'/>
<id>e9dfe083f0fc37ee03506f3b8b8d68750927f613</id>
<content type='text'>
In the d6e7c162e1df3736d8e2b3610a831b7cfa5be99b was introduced util to
to extract widenable conditions from branch. That util was applied in
the llvm::isWidenableBranch to check if branch is widenable. So we
consider branch is widenable if it has widenable condition anywhere in
the condition tree. But that will be true when we finish GuardWidening
reworking from branch widening to widenable conditions widening.
For now we still need to check that widenable branch is in the form of:
`br(widenable_condition &amp; (...))`,
because that form is assumed by LoopPredication and GuardWidening
algorithms.

Fixes: https://github.com/llvm/llvm-project/issues/66418

Co-authored-by: Aleksander Popov &lt;apopov@azul.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the d6e7c162e1df3736d8e2b3610a831b7cfa5be99b was introduced util to
to extract widenable conditions from branch. That util was applied in
the llvm::isWidenableBranch to check if branch is widenable. So we
consider branch is widenable if it has widenable condition anywhere in
the condition tree. But that will be true when we finish GuardWidening
reworking from branch widening to widenable conditions widening.
For now we still need to check that widenable branch is in the form of:
`br(widenable_condition &amp; (...))`,
because that form is assumed by LoopPredication and GuardWidening
algorithms.

Fixes: https://github.com/llvm/llvm-project/issues/66418

Co-authored-by: Aleksander Popov &lt;apopov@azul.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopPredication] Rework assumes of widened conditions</title>
<updated>2023-08-18T12:35:46+00:00</updated>
<author>
<name>Aleksandr Popov</name>
<email>a.popov.tmb@gmail.com</email>
</author>
<published>2023-08-18T12:35:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1b87882228b0371212753781a363d4addd1bafa7'/>
<id>1b87882228b0371212753781a363d4addd1bafa7</id>
<content type='text'>
Currently after widening br(WC &amp;&amp; (c1 &amp;&amp; c2)) we insert assume of
(c1 &amp;&amp; c2) which is joined to WC by And operation.
But we are going to support more flexible form of widenable branches
where WC could be placed arbitrary in the expression tree, e.g:
br(c1 &amp;&amp; (c2 &amp;&amp; WC)).
In that case we won't have (c1 &amp;&amp; c2) in the IR. So we need to add
explicit (c1 &amp;&amp; c2) and then create an assumption of it.

Reviewed By: anna

Differential Revision: https://reviews.llvm.org/D157502
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently after widening br(WC &amp;&amp; (c1 &amp;&amp; c2)) we insert assume of
(c1 &amp;&amp; c2) which is joined to WC by And operation.
But we are going to support more flexible form of widenable branches
where WC could be placed arbitrary in the expression tree, e.g:
br(c1 &amp;&amp; (c2 &amp;&amp; WC)).
In that case we won't have (c1 &amp;&amp; c2) in the IR. So we need to add
explicit (c1 &amp;&amp; c2) and then create an assumption of it.

Reviewed By: anna

Differential Revision: https://reviews.llvm.org/D157502
</pre>
</div>
</content>
</entry>
<entry>
<title>[GuardUtils] Allow intermmediate blocks between widenable branch and deopt block</title>
<updated>2023-05-25T09:28:11+00:00</updated>
<author>
<name>Serguei Katkov</name>
<email>serguei.katkov@azul.com</email>
</author>
<published>2023-05-24T04:22:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=116a31e3c39953d38cd3499dbb93a840e02d0c8f'/>
<id>116a31e3c39953d38cd3499dbb93a840e02d0c8f</id>
<content type='text'>
Reviewed By: anna
Differential Revision: https://reviews.llvm.org/D151082
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed By: anna
Differential Revision: https://reviews.llvm.org/D151082
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopPredication] Fix the LoopPredication by feezing the result of predication.</title>
<updated>2023-03-29T08:12:00+00:00</updated>
<author>
<name>Serguei Katkov</name>
<email>serguei.katkov@azul.com</email>
</author>
<published>2023-03-22T10:10:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=99da317331e37d530610695b0cf44ba2686b735e'/>
<id>99da317331e37d530610695b0cf44ba2686b735e</id>
<content type='text'>
LoopPredication introduces the use of possibly posion value in branch (guard)
instruction, so to avoid introducing undefined behavior it should be frozen.

Reviewed By: mkazantsev
Differential Revision: https://reviews.llvm.org/D146685
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LoopPredication introduces the use of possibly posion value in branch (guard)
instruction, so to avoid introducing undefined behavior it should be frozen.

Reviewed By: mkazantsev
Differential Revision: https://reviews.llvm.org/D146685
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopPredication] Convert tests to opaque pointers (NFC)</title>
<updated>2023-01-02T15:52:03+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2023-01-02T15:51:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ba89c66771a8512ddbee7391e8ea11f7149f7ae2'/>
<id>ba89c66771a8512ddbee7391e8ea11f7149f7ae2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Port all LoopPredication tests to `-passes=` syntax</title>
<updated>2022-12-07T23:38:46+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2022-12-07T23:27:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e23e1594d834726fadb681ee4517d3df42964654'/>
<id>e23e1594d834726fadb681ee4517d3df42964654</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopPredication] Insert assumes of conditions of predicated guards</title>
<updated>2022-10-07T09:10:24+00:00</updated>
<author>
<name>Dmitry Makogon</name>
<email>d.makogon@g.nsu.ru</email>
</author>
<published>2022-10-06T09:30:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8307f6c854b64d00bac3d621917ff11bec1afb32'/>
<id>8307f6c854b64d00bac3d621917ff11bec1afb32</id>
<content type='text'>
As LoopPredication performs non-equivalent transforms removing some
checks from loops, other passes may not be able to perform transforms
they'd be able to do if the checks were left in loops.

This patch makes LoopPredication insert assumes of the replaced
conditions either after a guard call or in the true block of
widenable condition branch.

Differential Revision: https://reviews.llvm.org/D135354
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As LoopPredication performs non-equivalent transforms removing some
checks from loops, other passes may not be able to perform transforms
they'd be able to do if the checks were left in loops.

This patch makes LoopPredication insert assumes of the replaced
conditions either after a guard call or in the true block of
widenable condition branch.

Differential Revision: https://reviews.llvm.org/D135354
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert rest of `IRBuilderBase`'s short-circuiting folds</title>
<updated>2021-10-27T23:15:14+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2021-10-27T23:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b291597112f358d97068d960b690434b6e40a8c8'/>
<id>b291597112f358d97068d960b690434b6e40a8c8</id>
<content type='text'>
Upon further investigation and discussion,
this is actually the opposite direction from what we should be taking,
and this direction wouldn't solve the motivational problem anyway.

Additionally, some more (polly) tests have escaped being updated.
So, let's just take a step back here.

This reverts commit f3190dedeef9da2109ea57e4cb372f295ff53b88.
This reverts commit 749581d21f2b3f53e4fca4eb8728c942d646893b.
This reverts commit f3df87d57e096143670e0fd396e81d43393a2dd2.
This reverts commit ab1dbcecd6f0969976fafd62af34730436ad5944.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Upon further investigation and discussion,
this is actually the opposite direction from what we should be taking,
and this direction wouldn't solve the motivational problem anyway.

Additionally, some more (polly) tests have escaped being updated.
So, let's just take a step back here.

This reverts commit f3190dedeef9da2109ea57e4cb372f295ff53b88.
This reverts commit 749581d21f2b3f53e4fca4eb8728c942d646893b.
This reverts commit f3df87d57e096143670e0fd396e81d43393a2dd2.
This reverts commit ab1dbcecd6f0969976fafd62af34730436ad5944.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IR] `IRBuilderBase::CreateAnd()`: fix short-circuiting for constant on LHS</title>
<updated>2021-10-27T15:01:06+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2021-10-27T14:04:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=749581d21f2b3f53e4fca4eb8728c942d646893b'/>
<id>749581d21f2b3f53e4fca4eb8728c942d646893b</id>
<content type='text'>
Refs. https://reviews.llvm.org/D109368#3089809
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refs. https://reviews.llvm.org/D109368#3089809
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Re-autogenerate check lines in some tests to ease of future update</title>
<updated>2021-10-27T15:01:05+00:00</updated>
<author>
<name>Roman Lebedev</name>
<email>lebedev.ri@gmail.com</email>
</author>
<published>2021-10-27T12:58:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5a8a7b3bf807b3c8c2b3772eb70386846a72013f'/>
<id>5a8a7b3bf807b3c8c2b3772eb70386846a72013f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
