about summary refs log tree commit diff
path: root/compiler/rustc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-07-14 08:01:21 +0000
committerbors <bors@rust-lang.org>2024-07-14 08:01:21 +0000
commit0ffbddd09e02a00b762d838ea1598bfa89dd1668 (patch)
tree177207783f425e6ce97cbc40333e06f93e3a412a /compiler/rustc
parent8a63c84af5e7a201239e87d2175128907495b028 (diff)
parent6e3cff70948b2292467f2e3e1b14d14372956034 (diff)
downloadrust-0ffbddd09e02a00b762d838ea1598bfa89dd1668.tar.gz
rust-0ffbddd09e02a00b762d838ea1598bfa89dd1668.zip
Auto merge of #127087 - cjgillot:small-map, r=oli-obk
Only track mentioned places for jump threading

This PR aims to reduce the state space size in jump threading and dataflow const-prop opts.

The current implementation walks the types of all locals, and creates a place for each possible projection. This can easily lead to a large number of places and tracked values, most being useless to the actual pass.

With this PR, we instead collect places that appear syntactically in the MIR (first commit). However, this is not sufficient (second commit), and we miss places that we could track in aggregate assignments. The third commit tracks such assignments to mirror place projections, see the inline comment.

This is complementary to https://github.com/rust-lang/rust/pull/127036

r? `@oli-obk`
Diffstat (limited to 'compiler/rustc')
0 files changed, 0 insertions, 0 deletions