aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
diff options
context:
space:
mode:
authorBalázs Benics <108414871+balazs-benics-sonarsource@users.noreply.github.com>2025-02-24 15:48:06 +0100
committerGitHub <noreply@github.com>2025-02-24 15:48:06 +0100
commit22a5bb32b787443b70476cc1359709b6c888b591 (patch)
treede4b35a4ded4db727739f8f3c9f5b408cb201309 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
parent96c87a16a507207e839f20b668ccd51dd2db6123 (diff)
downloadllvm-22a5bb32b787443b70476cc1359709b6c888b591.zip
llvm-22a5bb32b787443b70476cc1359709b6c888b591.tar.gz
llvm-22a5bb32b787443b70476cc1359709b6c888b591.tar.bz2
[analyzer] Limit Store by region-store-binding-limit (#127602)
In our test pool, the max entry point RT was improved by this change: 1'181 seconds (~19.7 minutes) -> 94 seconds (1.6 minutes) BTW, the 1.6 minutes is still really bad. But a few orders of magnitude better than it was before. This was the most servere RT edge-case as you can see from the numbers. There are are more known RT bottlenecks, such as: - Large environment sizes, and `removeDead`. See more about the failed attempt on improving it at: https://discourse.llvm.org/t/unsuccessful-attempts-to-fix-a-slow-analysis-case-related-to-removedead-and-environment-size/84650 - Large chunk of time could be spend inside `assume`, to reach a fixed point. This is something we want to look into a bit later if we have time. We have 3'075'607 entry points in our test set. About 393'352 entry points ran longer than 1 second when measured. To give a sense of the distribution, if we ignore the slowest 500 entry points, then the maximum entry point runs for about 14 seconds. These 500 slow entry points are in 332 translation units. By this patch, out of the slowest 500 entry points, 72 entry points were improved by at least 10x after this change. We measured no RT regression on the "usual" entry points. ![slow-entrypoints-before-and-after-bind-limit](https://github.com/user-attachments/assets/44425a76-f1cb-449c-bc3e-f44beb8c5dc7) (The dashed lines represent the maximum of their RT) CPP-6092
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions