about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2025-01-18 13:58:01 +0100
committerGitHub <noreply@github.com>2025-01-18 13:58:01 +0100
commit56447d738b197ac9643ce31530ce45d7f46edf74 (patch)
tree0f8d29c9214c66c2b0c9fca03db50ba015a91da3 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parentb78edd7957190cc8db3e3af43e0a4a5375ffdf79 (diff)
parentdee52a31789fb87e04b4762df5b84d52738b1adb (diff)
downloadrust-56447d738b197ac9643ce31530ce45d7f46edf74.tar.gz
rust-56447d738b197ac9643ce31530ce45d7f46edf74.zip
Rollup merge of #135290 - lqd:polonius-next-episode-8, r=jackh726
Encode constraints that hold at all points as logical edges in location-sensitive polonius

Currently, with the full setup in #134980 (but is from #134268), the polonius location-sensitive analysis converts `Locations::All` typeck constraints as edges at all points in the CFG. This was temporary.

There's a FIXME about that already, and this PR implements it: we now use the constraints that hold at all points during traversal instead of eagerly materializing them as physical edges.

Another easy one `@jackh726.`

This fixes the slowness that was happening on the big CFG from the `saturating-float-casts` test (because of its 12M materialized edges) without, AFAICT, simply moving this overhead to traversal: materializing the logical edges is done on-demand.

r? `@jackh726` (no rush either)
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions