aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorHua Tian <akiratian@tencent.com>2024-06-13 17:51:09 +0800
committerGitHub <noreply@github.com>2024-06-13 17:51:09 +0800
commitb6bf4024a031a5e7b58aff1425d94841a88002d6 (patch)
tree8672ce8c9e26df757327bf4d7440c30269bb9523 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parenta144bf2b2511b47fc165755817eda17f79ef5476 (diff)
downloadllvm-b6bf4024a031a5e7b58aff1425d94841a88002d6.zip
llvm-b6bf4024a031a5e7b58aff1425d94841a88002d6.tar.gz
llvm-b6bf4024a031a5e7b58aff1425d94841a88002d6.tar.bz2
[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>
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions