<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Analysis/InstructionPrecedenceTracking.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>[Analysis] Avoid repeated hash lookups (NFC) (#132584)</title>
<updated>2025-03-23T14:36:19+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-03-23T14:36:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ce2c4ea658239771dec542249a77dcf2056d8b8a'/>
<id>ce2c4ea658239771dec542249a77dcf2056d8b8a</id>
<content type='text'>
FirstSpecialInsts caches the first special instruction for each basic
block.  This patch "inlines" fill into getFirstSpecialInstruction, the
sole caller, to eliminate repeated hash lookups.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FirstSpecialInsts caches the first special instruction for each basic
block.  This patch "inlines" fill into getFirstSpecialInstruction, the
sole caller, to eliminate repeated hash lookups.</pre>
</div>
</content>
</entry>
<entry>
<title>[Analysis] Avoid repeated hash lookups (NFC) (#123159)</title>
<updated>2025-01-16T16:45:27+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-01-16T16:45:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5fa989b034236ebf5a808dd47af50ab29d991a7d'/>
<id>5fa989b034236ebf5a808dd47af50ab29d991a7d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Use *{Map,Set}::contains (NFC)</title>
<updated>2023-03-16T01:06:32+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2023-03-16T01:06:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=398af9b43bbfbff291faac5bce524eca675d6caf'/>
<id>398af9b43bbfbff291faac5bce524eca675d6caf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Analysis] Use *{Set,Map}::contains (NFC)</title>
<updated>2023-03-14T07:32:40+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2023-03-14T07:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=11efd1cb04d0e9115d38f2138fa7fa455e281e09'/>
<id>11efd1cb04d0e9115d38f2138fa7fa455e281e09</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[Analysis] Qualify auto variables in for loops (NFC)</title>
<updated>2022-07-17T06:26:34+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2022-07-17T06:26:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=601b3a13dea746e2b1e683bbbece41ae9de76c2b'/>
<id>601b3a13dea746e2b1e683bbbece41ae9de76c2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[IPT] Restructure cache to allow lazy update following invalidation [NFC]"</title>
<updated>2021-10-21T17:48:41+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2021-10-21T17:48:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3781a46c3c70a83b2a5312aa358512578e87b9ca'/>
<id>3781a46c3c70a83b2a5312aa358512578e87b9ca</id>
<content type='text'>
This reverts commit baea663a6e9bc52f80995d02bb8149934c825612.

Causes crashes, e.g. https://lab.llvm.org/buildbot/#/builders/77/builds/10715.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit baea663a6e9bc52f80995d02bb8149934c825612.

Causes crashes, e.g. https://lab.llvm.org/buildbot/#/builders/77/builds/10715.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IPT] Restructure cache to allow lazy update following invalidation [NFC]</title>
<updated>2021-10-21T16:16:21+00:00</updated>
<author>
<name>Philip Reames</name>
<email>listmail@philipreames.com</email>
</author>
<published>2021-10-21T16:15:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=baea663a6e9bc52f80995d02bb8149934c825612'/>
<id>baea663a6e9bc52f80995d02bb8149934c825612</id>
<content type='text'>
This change restructures the cache used in IPT to point not to the first special instruction, but to the first instruction which *could* be special. That is, the cached reference is always equal to the first special, or comes before it in the block.

This avoids expensive block scans when we are removing special instructions from the beginning of the block. At the moment, this case is not heavily used, though it does trigger in GVN when doing CSE of calls. The main motivation was a change I'm no longer planning to move forward with, but the cache optimization seemed worthwhile as a minor perf win at low cost.

Differential Revision: https://reviews.llvm.org/D111768
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change restructures the cache used in IPT to point not to the first special instruction, but to the first instruction which *could* be special. That is, the cached reference is always equal to the first special, or comes before it in the block.

This avoids expensive block scans when we are removing special instructions from the beginning of the block. At the moment, this case is not heavily used, though it does trigger in GVN when doing CSE of calls. The main motivation was a change I'm no longer planning to move forward with, but the cache optimization seemed worthwhile as a minor perf win at low cost.

Differential Revision: https://reviews.llvm.org/D111768
</pre>
</div>
</content>
</entry>
<entry>
<title>[IPT] Add a statistic to track instructions scanned to answer queries</title>
<updated>2021-10-08T17:59:35+00:00</updated>
<author>
<name>Philip Reames</name>
<email>listmail@philipreames.com</email>
</author>
<published>2021-10-08T17:49:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=edf31b4db1be3acdac1204a1c232454af20569e4'/>
<id>edf31b4db1be3acdac1204a1c232454af20569e4</id>
<content type='text'>
I'm planning some changes to the invalidation mechanism here, and having a concrete mechanism to track progress is key.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm planning some changes to the invalidation mechanism here, and having a concrete mechanism to track progress is key.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IPT] Narrow scope of removeInstruction invalidation [NFC]</title>
<updated>2021-10-08T17:35:03+00:00</updated>
<author>
<name>Philip Reames</name>
<email>listmail@philipreames.com</email>
</author>
<published>2021-10-08T17:32:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b4498e6b8d7f55e0fe9e26a5f5d21ec1a78f6fb0'/>
<id>b4498e6b8d7f55e0fe9e26a5f5d21ec1a78f6fb0</id>
<content type='text'>
We only need to invalidate if the instruction being removed is the cached "first special instruction".  If the instruction is before that one, it can't (by assumption) be special.  If it is after that one, it wasn't the first.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We only need to invalidate if the instruction being removed is the cached "first special instruction".  If the instruction is before that one, it can't (by assumption) be special.  If it is after that one, it wasn't the first.
</pre>
</div>
</content>
</entry>
<entry>
<title>[GVN] Properly invalidate ICF cache when we simplify a value</title>
<updated>2021-04-08T21:01:57+00:00</updated>
<author>
<name>Arthur Eubanks</name>
<email>aeubanks@google.com</email>
</author>
<published>2021-04-08T18:44:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7'/>
<id>c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7</id>
<content type='text'>
This fixes a "Cached first special instruction is wrong!" assert.

The assert fires because replacing a value with another can cause an
instruction to no longer be "special" to ICF. In this case,
devirtualization happened, turning an indirect call to a
call to a willreturn function which is no longer special.

Reviewed By: nikic, rnk

Differential Revision: https://reviews.llvm.org/D99977
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes a "Cached first special instruction is wrong!" assert.

The assert fires because replacing a value with another can cause an
instruction to no longer be "special" to ICF. In this case,
devirtualization happened, turning an indirect call to a
call to a willreturn function which is no longer special.

Reviewed By: nikic, rnk

Differential Revision: https://reviews.llvm.org/D99977
</pre>
</div>
</content>
</entry>
</feed>
