diff options
author | vporpo <vporpodas@google.com> | 2025-03-19 18:18:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-19 18:18:45 -0700 |
commit | 08dda4dcbf6427e357830d9c7f7ac3b422fc75f6 (patch) | |
tree | d10ce1e0254058a371ee471890415df6acf9f051 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | |
parent | fd7be0d2e9e2cb7d43c9cb97edbb36da59a5b595 (diff) | |
download | llvm-08dda4dcbf6427e357830d9c7f7ac3b422fc75f6.zip llvm-08dda4dcbf6427e357830d9c7f7ac3b422fc75f6.tar.gz llvm-08dda4dcbf6427e357830d9c7f7ac3b422fc75f6.tar.bz2 |
[Analysis][EphemeralValuesCache][InlineCost] Ephemeral values caching for the CallAnalyzer (#130210)
This patch does two things:
1. It implements an ephemeral values cache analysis pass that collects the ephemeral values of a function and caches them for fast lookups. The collection of the ephemeral values is done lazily when the user calls `EphemeralValuesCache::ephValues()`.
2. It adds caching of ephemeral values using the `EphemeralValuesCache` to speed up `CallAnalyzer::analyze()`. Without caching this can take a long time to run in cases where the function contains a large number of `@llvm.assume()` calls and a large number of callsites. The time is spent in `collectEphemeralvalues()`.
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions