<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Utils/FlattenCFG.cpp, 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>[llvm] Use range constructors of *Set (NFC) (#137552)</title>
<updated>2025-04-27T22:59:57+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-27T22:59:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5cfd81b0cc9f92f3d4903f4e7b97769fe7b565b9'/>
<id>5cfd81b0cc9f92f3d4903f4e7b97769fe7b565b9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[FlattenCFG] Fix an Imprecise Usage of AA (#128117)</title>
<updated>2025-04-18T10:30:05+00:00</updated>
<author>
<name>Chengjun</name>
<email>chengjunp@Nvidia.com</email>
</author>
<published>2025-04-18T10:30:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9b8bc53a0bdc270f6d675ba7a2fe9ca9a855610d'/>
<id>9b8bc53a0bdc270f6d675ba7a2fe9ca9a855610d</id>
<content type='text'>
In current `FlattenCFG`, using `isNoAlias` for two instructions is
imprecise. For example, when passing a store instruction and a load
instruction directly into `AA-&gt;isNoAlias`, it will always return
`NoAlias`. This happens because when checking the types of the two
Values, the store instruction (which has a `void` type) causes the
analysis to return `NoAlias`.

For instructions, we should use `getModRefInfo` instead of `isNoAlias`,
as aliasing is a concept of memory locations.

In this patch, `AAResults::getModRefInfo` is supported to take in two
instructions. It will check whether two instructions may access the same
memory location or not. And in `FlattenCFG`, we use this new helper
function to do the check instead of `isNoAlias`.

Unit tests and lit tests are also included to this patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In current `FlattenCFG`, using `isNoAlias` for two instructions is
imprecise. For example, when passing a store instruction and a load
instruction directly into `AA-&gt;isNoAlias`, it will always return
`NoAlias`. This happens because when checking the types of the two
Values, the store instruction (which has a `void` type) causes the
analysis to return `NoAlias`.

For instructions, we should use `getModRefInfo` instead of `isNoAlias`,
as aliasing is a concept of memory locations.

In this patch, `AAResults::getModRefInfo` is supported to take in two
instructions. It will check whether two instructions may access the same
memory location or not. And in `FlattenCFG`, we use this new helper
function to do the check instead of `isNoAlias`.

Unit tests and lit tests are also included to this patch.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[IR][NFC] Update IRBuilder to use InsertPosition (#96497)"</title>
<updated>2024-06-24T17:00:22+00:00</updated>
<author>
<name>Stephen Tozer</name>
<email>stephen.tozer@sony.com</email>
</author>
<published>2024-06-24T16:59:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d75f9dd1d29b332bdc51346de63cbc04646354d7'/>
<id>d75f9dd1d29b332bdc51346de63cbc04646354d7</id>
<content type='text'>
Reverts the above commit, as it updates a common header function and
did not update all callsites:

  https://lab.llvm.org/buildbot/#/builders/29/builds/382

This reverts commit 6481dc57612671ebe77fe9c34214fba94e1b3b27.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts the above commit, as it updates a common header function and
did not update all callsites:

  https://lab.llvm.org/buildbot/#/builders/29/builds/382

This reverts commit 6481dc57612671ebe77fe9c34214fba94e1b3b27.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IR][NFC] Update IRBuilder to use InsertPosition (#96497)</title>
<updated>2024-06-24T16:27:43+00:00</updated>
<author>
<name>Stephen Tozer</name>
<email>stephen.tozer@sony.com</email>
</author>
<published>2024-06-24T16:27:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6481dc57612671ebe77fe9c34214fba94e1b3b27'/>
<id>6481dc57612671ebe77fe9c34214fba94e1b3b27</id>
<content type='text'>
Uses the new InsertPosition class (added in #94226) to simplify some of
the IRBuilder interface, and removes the need to pass a BasicBlock
alongside a BasicBlock::iterator, using the fact that we can now get the
parent basic block from the iterator even if it points to the sentinel.
This patch removes the BasicBlock argument from each constructor or call
to setInsertPoint.

This has no functional effect, but later on as we look to remove the
`Instruction *InsertBefore` argument from instruction-creation
(discussed
[here](https://discourse.llvm.org/t/psa-instruction-constructors-changing-to-iterator-only-insertion/77845)),
this will simplify the process by allowing us to deprecate the
InsertPosition constructor directly and catch all the cases where we use
instructions rather than iterators.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Uses the new InsertPosition class (added in #94226) to simplify some of
the IRBuilder interface, and removes the need to pass a BasicBlock
alongside a BasicBlock::iterator, using the fact that we can now get the
parent basic block from the iterator even if it points to the sentinel.
This patch removes the BasicBlock argument from each constructor or call
to setInsertPoint.

This has no functional effect, but later on as we look to remove the
`Instruction *InsertBefore` argument from instruction-creation
(discussed
[here](https://discourse.llvm.org/t/psa-instruction-constructors-changing-to-iterator-only-insertion/77845)),
this will simplify the process by allowing us to deprecate the
InsertPosition constructor directly and catch all the cases where we use
instructions rather than iterators.</pre>
</div>
</content>
</entry>
<entry>
<title>[FlattenCFG] Fix the miscompilation where phi nodes exist in the merge point (#81987)</title>
<updated>2024-02-25T14:01:13+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2024-02-25T14:01:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f920b746ea818f1d21f317116cbb105e3e85979a'/>
<id>f920b746ea818f1d21f317116cbb105e3e85979a</id>
<content type='text'>
When there are phi nodes in the merge point of the if-region, we cannot
do the merge.
Alive2: https://alive2.llvm.org/ce/z/DbgEan
Fixes #70900.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When there are phi nodes in the merge point of the if-region, we cannot
do the merge.
Alive2: https://alive2.llvm.org/ce/z/DbgEan
Fixes #70900.</pre>
</div>
</content>
</entry>
<entry>
<title>[Pass] Add hyphen to some pass names (#74287)</title>
<updated>2024-01-25T08:05:54+00:00</updated>
<author>
<name>paperchalice</name>
<email>liujunchang97@outlook.com</email>
</author>
<published>2024-01-25T08:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e390c229a438ed1eb3396df8fbeeda89c49474e6'/>
<id>e390c229a438ed1eb3396df8fbeeda89c49474e6</id>
<content type='text'>
Here is the list of the renamed passes:
- `callbrprepare` -&gt; `callbr-prepare`
- `dwarfehprepare` -&gt; `dwarf-eh-prepare`
- `flattencfg` -&gt; `flatten-cfg`
- `loweratomic` -&gt; `lower-atomic`
- `lowerinvoke` -&gt; `lower-invoke`
- `lowerswitch` -&gt; `lower-switch`
- `winehprepare` -&gt; `win-eh-prepare`
- `targetir` -&gt; `target-ir`
- `targetlibinfo` -&gt; `target-lib-info`

Legacy passes are not affected.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Here is the list of the renamed passes:
- `callbrprepare` -&gt; `callbr-prepare`
- `dwarfehprepare` -&gt; `dwarf-eh-prepare`
- `flattencfg` -&gt; `flatten-cfg`
- `loweratomic` -&gt; `lower-atomic`
- `lowerinvoke` -&gt; `lower-invoke`
- `lowerswitch` -&gt; `lower-switch`
- `winehprepare` -&gt; `win-eh-prepare`
- `targetir` -&gt; `target-ir`
- `targetlibinfo` -&gt; `target-lib-info`

Legacy passes are not affected.</pre>
</div>
</content>
</entry>
<entry>
<title>[BasicBlockUtils][NFCI] Extract branch inverting to a separate method</title>
<updated>2023-04-21T12:44:13+00:00</updated>
<author>
<name>Max Kazantsev</name>
<email>mkazantsev@azul.com</email>
</author>
<published>2023-04-21T12:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9d7785b2e99548f3fde6fa030443a4d443dec647'/>
<id>9d7785b2e99548f3fde6fa030443a4d443dec647</id>
<content type='text'>
The motivation is to make possible branch inverting code reuse.

Patch by Aleksandr Popov!

Differential Revision: https://reviews.llvm.org/D148708
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The motivation is to make possible branch inverting code reuse.

Patch by Aleksandr Popov!

Differential Revision: https://reviews.llvm.org/D148708
</pre>
</div>
</content>
</entry>
<entry>
<title>[FlattenCFG] Replace branch condition with a created one correctly</title>
<updated>2023-04-21T09:49:18+00:00</updated>
<author>
<name>Max Kazantsev</name>
<email>mkazantsev@azul.com</email>
</author>
<published>2023-04-21T09:49:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8502c545771ee6c740b0ffc10863dcb4546f6e75'/>
<id>8502c545771ee6c740b0ffc10863dcb4546f6e75</id>
<content type='text'>
Fix case when FlattenCFGOpt combines the conditions but doesn't update
branch with a new combined condition. It happens when one of the
combinable condition is inverted and has more then 1 user

Patch by Aleksandr Popov!

Differential Revision: https://reviews.llvm.org/D148707
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix case when FlattenCFGOpt combines the conditions but doesn't update
branch with a new combined condition. It happens when one of the
combinable condition is inverted and has more then 1 user

Patch by Aleksandr Popov!

Differential Revision: https://reviews.llvm.org/D148707
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Cleanup: Replaces BB-&gt;getInstList().splice() with BB-&gt;splice().</title>
<updated>2022-12-01T23:37:51+00:00</updated>
<author>
<name>Vasileios Porpodas</name>
<email>vporpodas@google.com</email>
</author>
<published>2022-11-28T22:45:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bebca2b6d559f545c82047b2071273b4c243d13b'/>
<id>bebca2b6d559f545c82047b2071273b4c243d13b</id>
<content type='text'>
This is part of a series of cleanup patches towards making BasicBlock::getInstList() private.

Differential Revision: https://reviews.llvm.org/D138979
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is part of a series of cleanup patches towards making BasicBlock::getInstList() private.

Differential Revision: https://reviews.llvm.org/D138979
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Replaced BB-&gt;getInstList().{erase(),pop_front(),pop_back()} with eraseFromParent().</title>
<updated>2022-11-24T06:47:46+00:00</updated>
<author>
<name>Vasileios Porpodas</name>
<email>vporpodas@google.com</email>
</author>
<published>2022-11-23T22:53:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af4e856fa71c6b5086aeda79bfcd954e98cef591'/>
<id>af4e856fa71c6b5086aeda79bfcd954e98cef591</id>
<content type='text'>
Differential Revision: https://reviews.llvm.org/D138617
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Differential Revision: https://reviews.llvm.org/D138617
</pre>
</div>
</content>
</entry>
</feed>
