History log of /llvm-project/llvm/lib/CodeGen/WindowScheduler.cpp (Results 1 – 10 of 10)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3
# d808f158 05-Aug-2024 Kai Yan <aklkaiyan@tencent.com>

[llvm][CodeGen] Address the issue of multiple resource reservations In window scheduling (#101665)

Address the issue of multiple resource reservations in window
scheduling.


Revision tags: llvmorg-19.1.0-rc2
# 58964c84 02-Aug-2024 Kai Yan <aklkaiyan@tencent.com>

Revert "[llvm][CodeGen] Address the issue of multiple resource reservations in window scheduling (#100301)" (#101658)

This reverts commit aa0a33be56f1ef8195eccbca57a103a8e1e302e3.


# aa0a33be 02-Aug-2024 Kai Yan <aklkaiyan@tencent.com>

[llvm][CodeGen] Address the issue of multiple resource reservations in window scheduling (#100301)

Address the issue of multiple resource reservations in window scheduling


Revision tags: llvmorg-19.1.0-rc1
# 90a99798 25-Jul-2024 Kai Yan <aklkaiyan@tencent.com>

[llvm][CodeGen] Fixed a bug in stall cycle calculation for window scheduler (#99451)

Fixed a bug in stall cycle calculation.
When a register defined by an instruction in the current iteration is
u

[llvm][CodeGen] Fixed a bug in stall cycle calculation for window scheduler (#99451)

Fixed a bug in stall cycle calculation.
When a register defined by an instruction in the current iteration is
used by an instruction in the next iteration, we have modified the
number of stall cycle that need to be inserted.

show more ...


# 2d6ff0c5 24-Jul-2024 Kai Yan <aklkaiyan@tencent.com>

[llvm][CodeGen] Added missing initialization failure information for window scheduler (#99449)

Added missing initialization failure information for window scheduler.


# d27ee36c 24-Jul-2024 Kai Yan <aklkaiyan@tencent.com>

[llvm][CodeGen] Fixed max cycle calculation with zero-cost instructions for window scheduler (#99454)

We discovered some scheduling failures occurring when zero-cost
instructions were involved. Thi

[llvm][CodeGen] Fixed max cycle calculation with zero-cost instructions for window scheduler (#99454)

We discovered some scheduling failures occurring when zero-cost
instructions were involved. This issue will be addressed by this patch.

show more ...


Revision tags: llvmorg-20-init
# 811e505c 26-Jun-2024 Hua Tian <akiratian@tencent.com>

[llvm][CodeGen] Update checking method of loop-carried phi in window scheduler (#96288)

Added some logic to check loop-carried phis in the window scheduler. It now includes the scenario where the pr

[llvm][CodeGen] Update checking method of loop-carried phi in window scheduler (#96288)

Added some logic to check loop-carried phis in the window scheduler. It now includes the scenario where the preceding phi uses the virtual register defined by the succeeding phi.

show more ...


# dd1d2b7c 19-Jun-2024 Hua Tian <akiratian@tencent.com>

[llvm][CodeGen] Fix failure in window scheduler caused by phi (#95900)

In certain cases, the register passed with the kernel MBB in phi are not
defined within the kernel MBB. This patch adds the co

[llvm][CodeGen] Fix failure in window scheduler caused by phi (#95900)

In certain cases, the register passed with the kernel MBB in phi are not
defined within the kernel MBB. This patch adds the corresponding handling.

show more ...


# 355e4a9e 15-Jun-2024 Hua Tian <akiratian@tencent.com>

[llvm][CodeGen] Fix failure in window scheduler caused by weak dependencies (#95636)

This commit addresses an issue where weak dependencies trigger an
assertion in the window scheduler under certai

[llvm][CodeGen] Fix failure in window scheduler caused by weak dependencies (#95636)

This commit addresses an issue where weak dependencies trigger an
assertion in the window scheduler under certain conditions.

show more ...


Revision tags: llvmorg-18.1.8
# b6bf4024 13-Jun-2024 Hua Tian <akiratian@tencent.com>

[llvm][CodeGen] Add a new software pipeliner 'Window Scheduler' (#84443)

This commit implements the Window Scheduler as described in the RFC:

https://discourse.llvm.org/t/rfc-window-scheduling-al

[llvm][CodeGen] Add a new software pipeliner 'Window Scheduler' (#84443)

This commit implements the Window Scheduler as described in the RFC:

https://discourse.llvm.org/t/rfc-window-scheduling-algorithm-for-machinepipeliner-in-llvm/74718

This Window Scheduler implements the window algorithm designed by
Steven Muchnick in the book "Advanced Compiler Design And
Implementation",
with some improvements:

1. Copy 3 times of the loop kernel and construct the corresponding DAG
to identify dependencies between MIs;
2. Use heuristic algorithm to obtain a set of window offsets.

The window algorithm is equivalent to modulo scheduling algorithm with a
stage of 2. It is mainly applied in targets where hardware resource
conflicts are severe, and the SMS algorithm often fails in such cases.
On our own DSA, this window algorithm typically can achieve a
performance
improvement of over 10%.

Co-authored-by: Kai Yan <aklkaiyan@tencent.com>
Co-authored-by: Ran Xiao <lennyxiao@tencent.com>

---------

Co-authored-by: Kai Yan <aklkaiyan@tencent.com>
Co-authored-by: Ran Xiao <lennyxiao@tencent.com>

show more ...