<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Vectorize/SandboxVectorizer/Scheduler.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>[SandboxVec][Scheduler] Enforce scheduling SchedBundle instrs back-to-back (#128092)</title>
<updated>2025-02-27T18:23:50+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-27T18:23:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e2b0d5df84e023910a9b4204aad249d16fd0703a'/>
<id>e2b0d5df84e023910a9b4204aad249d16fd0703a</id>
<content type='text'>
This patch fixes the behavior of the scheduler by making sure the instrs
that are part of a SchedBundle are scheduled back-to-back.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the behavior of the scheduler by making sure the instrs
that are part of a SchedBundle are scheduled back-to-back.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Don't allow rescheduling of already scheduled (#128050)</title>
<updated>2025-02-21T00:16:34+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-21T00:16:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4d92975b5cf04ac36e7757a4f221b4f5ece6646f'/>
<id>4d92975b5cf04ac36e7757a4f221b4f5ece6646f</id>
<content type='text'>
This patch implements the check for not allowing re-scheduling of
instructions that have already been scheduled in a scheduling bundle.
Rescheduling should only happen if the instructions were temporarily
scheduled in singleton bundles during a previous call to
`trySchedule()`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements the check for not allowing re-scheduling of
instructions that have already been scheduled in a scheduling bundle.
Rescheduling should only happen if the instructions were temporarily
scheduled in singleton bundles during a previous call to
`trySchedule()`.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Don't insert scheduled instrs into the ready list (#127688)</title>
<updated>2025-02-19T00:17:46+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-19T00:17:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0cc7381543e363da1f609ea4a1bbb57f573b0d20'/>
<id>0cc7381543e363da1f609ea4a1bbb57f573b0d20</id>
<content type='text'>
In a particular scenario (see test) we used to insert scheduled
instructions into the ready list. This patch fixes this by fixing the
trimSchedule() function.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a particular scenario (see test) we used to insert scheduled
instructions into the ready list. This patch fixes this by fixing the
trimSchedule() function.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Fix top of schedule (#126820)</title>
<updated>2025-02-12T19:52:01+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-12T19:52:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6d7a84d72bf7f7be2a401e80a5339e1ae8f7c0f5'/>
<id>6d7a84d72bf7f7be2a401e80a5339e1ae8f7c0f5</id>
<content type='text'>
This patch fixes the way the top-of-schedule variable gets set and
updated. Before this patch it used to get updated whenever we scheduled
a bundle, which is wrong, as the top-of-schedule needs to be maintained
across scheduling attempts.

It should get reset only when we clear the schedule or when we destroy
the current schedule and re-schedule.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes the way the top-of-schedule variable gets set and
updated. Before this patch it used to get updated whenever we scheduled
a bundle, which is wrong, as the top-of-schedule needs to be maintained
across scheduling attempts.

It should get reset only when we clear the schedule or when we destroy
the current schedule and re-schedule.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Notify scheduler about instruction creation (#126141)</title>
<updated>2025-02-06T23:45:44+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-06T23:45:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a0d86b23c0c81d0900c9d361035f02989e2647a4'/>
<id>a0d86b23c0c81d0900c9d361035f02989e2647a4</id>
<content type='text'>
This patch implements the vectorizer's callback for getting notified
about new instructions being created. This updates the scheduler state,
which may involve removing dependent instructions from the ready list
and update the "scheduled" flag.
Since we need to remove elements from the ready list, this patch also
implements the `remove()` operation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch implements the vectorizer's callback for getting notified
about new instructions being created. This updates the scheduler state,
which may involve removing dependent instructions from the ready list
and update the "scheduled" flag.
Since we need to remove elements from the ready list, this patch also
implements the `remove()` operation.</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 trim schedule</title>
<updated>2025-01-25T17:42:14+00:00</updated>
<author>
<name>Vasileios Porpodas</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-25T16:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b178c2d63e0701655046dfd2ead195b36e0df397'/>
<id>b178c2d63e0701655046dfd2ead195b36e0df397</id>
<content type='text'>
Fix trimSchedule by skipping instructions without a DAG Node.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix trimSchedule by skipping instructions without a DAG Node.
</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Scheduler] Forbid crossing BBs (#124369)</title>
<updated>2025-01-25T16:19:27+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-25T16:19:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5cb2db3b51c2a9d516d57bd2f07d9899bd5fdae7'/>
<id>5cb2db3b51c2a9d516d57bd2f07d9899bd5fdae7</id>
<content type='text'>
This patch updates the scheduler to forbid scheduling across BBs. It
should eventually be able to handle this, but we disable it for now.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch updates the scheduler to forbid scheduling across BBs. It
should eventually be able to handle this, but we disable it for now.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][BottomUpVec] Disable crossing BBs (#124039)</title>
<updated>2025-01-23T23:08:13+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-23T23:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c7053ac202de1723c49d2f02d1c56d7a0a4481c0'/>
<id>c7053ac202de1723c49d2f02d1c56d7a0a4481c0</id>
<content type='text'>
Crossing BBs is not currently supported by the structures of the
vectorizer. This patch fixes instances where this was happening,
including:
- a walk of use-def operands that updates the UnscheduledSuccs counter,
- the dead instruction removal is now done per BB,
- the scheduler, which will reject bundles that cross BBs.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Crossing BBs is not currently supported by the structures of the
vectorizer. This patch fixes instances where this was happening,
including:
- a walk of use-def operands that updates the UnscheduledSuccs counter,
- the dead instruction removal is now done per BB,
- the scheduler, which will reject bundles that cross BBs.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix MSVC "not all control paths return a value" warning. NFC</title>
<updated>2024-11-07T10:22:05+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2024-11-07T10:22:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=490e58a98e0518542c87aa16e326fcb446d7b1cc'/>
<id>490e58a98e0518542c87aa16e326fcb446d7b1cc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
