<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Vectorize/SandboxVectorizer/DependencyGraph.cpp, branch main</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] Remove "const" in the presence of "constexpr" (NFC) (#166109)</title>
<updated>2025-11-02T23:52:44+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-02T23:52:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=902b0bd04ace42dce5c497aa60233ac82abc4e5a'/>
<id>902b0bd04ace42dce5c497aa60233ac82abc4e5a</id>
<content type='text'>
"const" is extraneous in the presence of "constexpr" for simple
variables and arrays.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
"const" is extraneous in the presence of "constexpr" for simple
variables and arrays.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Fix reassignment of SchedBundle to DGNode</title>
<updated>2025-02-20T23:28:16+00:00</updated>
<author>
<name>Vasileios Porpodas</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-20T23:17:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2ff80d2448f87429b1fb55ea4c112eb9a974298f'/>
<id>2ff80d2448f87429b1fb55ea4c112eb9a974298f</id>
<content type='text'>
When assigning a bundle to a DAG Node that is already assigned to a
SchedBundle we need to remove the node from the old bundle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When assigning a bundle to a DAG Node that is already assigned to a
SchedBundle we need to remove the node from the old bundle.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Implement DAG maintainance on Instruction removal (#127361)</title>
<updated>2025-02-18T18:59:31+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-18T18:59:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=426148b26959b6ef3db8e05c82f708cf60301701'/>
<id>426148b26959b6ef3db8e05c82f708cf60301701</id>
<content type='text'>
This patch implements dependency maintenance upon receiveing the
notification that an instruction gets deleted.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements dependency maintenance upon receiveing the
notification that an instruction gets deleted.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Update DAG whenever a Use is set (#127247)</title>
<updated>2025-02-14T19:58:31+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-14T19:58:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=48c92dda0086d0ec2e8c1032ec53edec743c85f3'/>
<id>48c92dda0086d0ec2e8c1032ec53edec743c85f3</id>
<content type='text'>
This patch implements automatic DAG updating whenever a Use is set. This
maintains the UnscheduledSuccs counter that the scheduler relies on.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements automatic DAG updating whenever a Use is set. This
maintains the UnscheduledSuccs counter that the scheduler relies on.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Fix DAG when old interval is mem free (#126983)</title>
<updated>2025-02-12T23:06:30+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-12T23:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1c207f1b6e8bba69dfbbcbd72704b4d720e363d0'/>
<id>1c207f1b6e8bba69dfbbcbd72704b4d720e363d0</id>
<content type='text'>
This patch fixes a bug in `DependencyGraph::extend()` when the old
interval contains no memory instructions. When this is the case we
should do a full dependency scan of the new interval.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a bug in `DependencyGraph::extend()` when the old
interval contains no memory instructions. When this is the case we
should do a full dependency scan of the new interval.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][BottomUpVec] Add cost estimation and tr-accept-or-revert pass (#126325)</title>
<updated>2025-02-08T16:34:18+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-08T16:34:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=69b8cf4f0621b359b487ad41887c20984be53a34'/>
<id>69b8cf4f0621b359b487ad41887c20984be53a34</id>
<content type='text'>
The TransactionAcceptOrRevert pass is the final pass in the Sandbox
Vectorizer's default pass pipeline. It's job is to check the cost
before/after vectorization and accept or revert the IR to its original
state.

Since we are now starting the transaction in BottomUpVec, tests that run
a custom pipeline need to accept the transaction. This is done with the
help of the TransactionAlwaysAccept pass (tr-accept).</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The TransactionAcceptOrRevert pass is the final pass in the Sandbox
Vectorizer's default pass pipeline. It's job is to check the cost
before/after vectorization and accept or revert the IR to its original
state.

Since we are now starting the transaction in BottomUpVec, tests that run
a custom pipeline need to accept the transaction. This is done with the
help of the TransactionAlwaysAccept pass (tr-accept).</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Update DAG when a new instruction is created (#126124)</title>
<updated>2025-02-06T22:12:03+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-06T22:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=166b2e88378bae4d74f9bdc56f1521150162fbf1'/>
<id>166b2e88378bae4d74f9bdc56f1521150162fbf1</id>
<content type='text'>
The DAG will now receive a callback whenever a new instruction is
created and will update itself accordingly.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The DAG will now receive a callback whenever a new instruction is
created and will update itself accordingly.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DependencyGraph] Fix dependency node iterators (#125616)</title>
<updated>2025-02-06T20:30:49+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-06T20:30:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=788c88e2f6bb028ebb53af52624b93a733d34a2b'/>
<id>788c88e2f6bb028ebb53af52624b93a733d34a2b</id>
<content type='text'>
This patch fixes a bug in the dependency node iterators that would
incorrectly not skip nodes that are not in the current DAG. This
resulted in iterators returning nullptr when dereferenced.

The fix is to update the existing "skip" function to not only skip
non-instruction values but also to skip instructions not in the DAG.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a bug in the dependency node iterators that would
incorrectly not skip nodes that are not in the current DAG. This
resulted in iterators returning nullptr when dereferenced.

The fix is to update the existing "skip" function to not only skip
non-instruction values but also to skip instructions not in the DAG.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Fix interval check without Node</title>
<updated>2025-01-26T19:54:09+00:00</updated>
<author>
<name>Vasileios Porpodas</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-25T17:46:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1c4341d176492da5f276937b84a3d0c959e4cf5b'/>
<id>1c4341d176492da5f276937b84a3d0c959e4cf5b</id>
<content type='text'>
This patch moves the check of whether a node exists before the check of
whether it is contained in the interval.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch moves the check of whether a node exists before the check of
whether it is contained in the interval.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][DAG] Fix MemDGNode chain maintenance when move destination is non-mem (#124227)</title>
<updated>2025-01-24T21:59:32+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-24T21:59:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b41987beaedaa6ea78fd8dd11ba8c3b21eb8fa88'/>
<id>b41987beaedaa6ea78fd8dd11ba8c3b21eb8fa88</id>
<content type='text'>
This patch fixes a bug in the maintenance of the MemDGNode chain of the
DAG. Whenever we move a memory instruction, the DAG gets notified about
the move and maintains the chain of memory nodes. The bug was that if
the destination of the move was not a memory instruction, then the
memory node's next node would end up pointing to itself.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a bug in the maintenance of the MemDGNode chain of the
DAG. Whenever we move a memory instruction, the DAG gets notified about
the move and maintains the chain of memory nodes. The bug was that if
the destination of the move was not a memory instruction, then the
memory node's next node would end up pointing to itself.</pre>
</div>
</content>
</entry>
</feed>
