diff options
author | Ryotaro Kasuga <kasuga.ryotaro@fujitsu.com> | 2025-10-09 19:19:45 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-09 10:19:45 +0000 |
commit | 22b79fb3b9d051a83520eaa9d03abad782697448 (patch) | |
tree | 5527d5abc2c3eed7b42dbb8ef8d5f910d4e7fed4 /llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp | |
parent | d6d5026b5107b940d7a7853ab16480f83c14384d (diff) | |
download | llvm-22b79fb3b9d051a83520eaa9d03abad782697448.zip llvm-22b79fb3b9d051a83520eaa9d03abad782697448.tar.gz llvm-22b79fb3b9d051a83520eaa9d03abad782697448.tar.bz2 |
[MachinePipeliner] Limit the number of stores in BB (#154940)
The dependency analysis in MachinePipeliner checks dependencies for
every pair of store instructions in the target basic block. This means
the time complexity of the analysis is `O(N^2)`, where `N` is the number
of store instructions. Therefore, compilation time can become
significantly long when there are too many store instructions.
To mitigate it, this patch introduces logic to count the number of store
instructions at the beginning of the pipeliner and bail out if it
exceeds the threshold. The default value if the threshold should be
large enough. Thus, in most practical cases where the pipeliner is
beneficial, this patch should not cause any performance regression.
Related issue: #150262
Diffstat (limited to 'llvm/tools/llvm-offload-binary/llvm-offload-binary.cpp')
0 files changed, 0 insertions, 0 deletions