salsa-rs / salsa

A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.
https://salsa-rs.netlify.app/
Apache License 2.0
2.14k stars 152 forks source link

Salsa produces a lot of duplicate (?) monomorphisations #220

Open matklad opened 4 years ago

matklad commented 4 years ago

I've looked at cargo-bloat output for rust-analyzer, and I see things like

 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
 0.0%   0.0%  2.7KiB           ra_assists <salsa::derived::slot::Slot<DB,Q,MP> as salsa::dependency::DatabaseSlot<DB>>::maybe_changed_since
...

Full output: https://gist.github.com/matklad/3be59ade1cae624f9705a3c13b1cbfeb

bjorn3 commented 4 years ago

The maybe_changed_since implementation for Slot<DB, Q, MP> reads from the Slot<DB, Q, MP>, whose layout depends on the used database DB and key Q::Key. While the layout likely doesn't depend on the full query Q as it is used behind a RwLock, there is no guarantee to this:

https://github.com/salsa-rs/salsa/blob/97ed750a9dcea69a48cef40454febed4a926d7e5/src/derived/slot.rs#L27-L37

matklad commented 4 years ago

cargo llvm-lines points its finger in the same general direction: https://gist.github.com/matklad/688220f27cd54bf4967838fe5cb1d8f6#file-cargo-llvm-lines

lnicola commented 4 years ago

Also seen here:

``` 0000000000000000 00000000000029cf t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17he4c108d4d45b0c8aE 0000000000000000 00000000000029af t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h105711be69e42350E 0000000000000000 0000000000002565 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h42b066ad4e0af51dE 0000000000000000 000000000000218a t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17he144e998e694cf1aE 0000000000000000 0000000000001f2f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h31ef3f7be1ced9dcE 0000000000000000 0000000000001d38 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hceee7185b8016b12E 0000000000000000 0000000000001d16 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17haf812467a93209dfE 0000000000000000 0000000000001c67 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hc462ddcd27f8727dE 0000000000000000 0000000000001c0a t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17he435c68032d8e081E 0000000000000000 0000000000001af4 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h0fda3a009585a459E 0000000000000000 0000000000001ace t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h3eaed239dafe3a2cE 0000000000000000 0000000000001ab4 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h4c7f1da8d22586a1E 0000000000000000 0000000000001a94 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h734fe20f7d1547d1E 0000000000000000 0000000000001a84 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h1432a5b926a249edE 0000000000000000 0000000000001a7c t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hbe2e4f6dbb5166c3E 0000000000000000 0000000000001a7c t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h18b1b8d89718466cE 0000000000000000 0000000000001a61 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hf055dd3533855b40E 0000000000000000 0000000000001a5e t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h7f935b8693783bdbE 0000000000000000 0000000000001a45 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hb02e05fbe4a87498E 0000000000000000 0000000000001a2f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h1715397b770e78fdE 0000000000000000 0000000000001a2e t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hc0cf9ce7544d6b30E 0000000000000000 0000000000001a2c t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17heef7364a7baf6618E 0000000000000000 0000000000001a28 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h514b643b16a27afeE 0000000000000000 0000000000001a22 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hcd3d516e77c11be3E 0000000000000000 0000000000001a22 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h8ceadceeba0f5e50E 0000000000000000 0000000000001a1f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hd243c23bdb7bdf6dE 0000000000000000 0000000000001a0f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hac5d271ae71ac7fdE 0000000000000000 0000000000001a0f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17ha464f67ba09cc679E 0000000000000000 0000000000001a08 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hd132590dae7e8244E 0000000000000000 0000000000001a08 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h482b4b726ea9236aE 0000000000000000 00000000000019fa t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17ha9df6842e142e224E 0000000000000000 00000000000019f8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h2584f164d4499a7bE 0000000000000000 00000000000019e8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h7e31385b3f8d9874E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hec83364df16a485bE 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17he4832e050e1fae40E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hdcd7491c84701bb4E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17hd8461f2020d3f7b6E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h9d3f680217b2e8cfE 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h89112d1975bf3e14E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h784fc7fa4772cadfE 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h51364254b0d6ccbcE 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h4aaeedb33884efe1E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h4a50df823bca2b90E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h46859beb9e4dfa9eE 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h376d056de62b8849E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h1b54dea32a3a20e7E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h1474fa72d14607c3E 0000000000000000 00000000000019d8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h0e84dcf0f4e00fa4E 0000000000000000 00000000000019be t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h1050073c7e32aabcE 0000000000000000 00000000000019af t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12read_upgrade17h6a21d64801a83940E 0000000000000000 0000000000000f12 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hab16ec90ad68e33fE 0000000000000000 0000000000000ef4 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h1445d334e2fdd3baE 0000000000000000 0000000000000c0b T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hdfbc13ca7894fdc9E 0000000000000000 0000000000000be6 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hab85b2bef50ea537E 0000000000000000 0000000000000b42 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17he6ffdb2d9015e04dE 0000000000000000 0000000000000b42 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hcbe14ecbed8b0498E 0000000000000000 0000000000000b42 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h6ea210f38a6b3999E 0000000000000000 0000000000000b29 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h4b7c17d2cc9d3c00E 0000000000000000 0000000000000b21 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h02ab65dbc9c2baadE 0000000000000000 0000000000000b08 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hfe8be9b6f2cec891E 0000000000000000 0000000000000afd T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h177bef856a3e2f87E 0000000000000000 0000000000000aee T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hdef2d9ccd2a1e487E 0000000000000000 0000000000000ad3 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hbdd96801f9515b02E 0000000000000000 0000000000000abc T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h63c41ea33c970d87E 0000000000000000 0000000000000abc T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h0c64f890fe35a689E 0000000000000000 0000000000000aae T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hd89a16910eddcaf4E 0000000000000000 0000000000000aae T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hc5119ce6fbd4c34cE 0000000000000000 0000000000000aac T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h949acd1392a0d6b4E 0000000000000000 0000000000000aac T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h799671dcd5e9c93eE 0000000000000000 0000000000000aac T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h77de0227b1b2dc5fE 0000000000000000 0000000000000aac T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h2913a5f64c1952b0E 0000000000000000 0000000000000aa9 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h21eb4f0f23a20266E 0000000000000000 0000000000000aa2 T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hc15d96522b807a68E 0000000000000000 0000000000000a9e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hcd0e35cd420251d8E 0000000000000000 0000000000000a9e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h469472394d14acbdE 0000000000000000 0000000000000a9e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h11c83d45e3621a90E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hfe9200197a57cce5E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hef9b994b34536af6E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hec6e73d37695b0e8E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17he7d682c003c65491E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hd01fc909463d6c96E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hce6a60ab10ea3994E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17hb6c2cb2c5a9608bdE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h9b0af4ac9bc6c17aE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h917e1f34e662f0c5E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h8ded642b6e12161aE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h8d8857ec6d0aaa03E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h8ba54d5655eb0f50E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h82113ccb3d6015deE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h72b00da3526cd697E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h691dae59f32a93aeE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h674c04f65c0bf270E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h4fcdced557f2b26fE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h4f5bdff698ffab71E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h427b0e64be57209eE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h42421e9ca9beb54cE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h3ee3ad27692e39f0E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h2bd5fc71d8cd5617E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h265a4449cec31863E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h247072adb0bd90ddE 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h1ac9269d335b9b35E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h15c2d47d089f2855E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h141c6ee8f4d49324E 0000000000000000 0000000000000a8e T _ZN107_$LT$salsa..derived..slot..Slot$LT$DB$C$Q$C$MP$GT$$u20$as$u20$salsa..dependency..DatabaseSlot$LT$DB$GT$$GT$19maybe_changed_since17h0cd619ea40d22652E 0000000000000000 0000000000000a5a T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hb56ff2e851fade62E 0000000000000000 0000000000000970 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h4f94c2be60795ec5E 0000000000000000 000000000000096d T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hdbee9429036e7863E 0000000000000000 000000000000096d T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17haa01a3d010071022E 0000000000000000 000000000000096d T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h1bfb9473df108ca9E 0000000000000000 0000000000000946 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h43870629911d0904E 0000000000000000 000000000000092e T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h96595f1000f0c77bE 0000000000000000 00000000000008f5 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17heafb12f48fc399ffE 0000000000000000 00000000000008e1 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hf854a6028a5435d7E 0000000000000000 00000000000008cb T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hebb00d0cdc344b67E 0000000000000000 00000000000008cb T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hcc82a3f950b801c0E 0000000000000000 00000000000008cb T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h6f787bc74ba7686aE 0000000000000000 00000000000008cb T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h51b17af1f9b60ed2E 0000000000000000 00000000000008ca T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hf478524fb8b566eaE 0000000000000000 00000000000008c6 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h91e2c7e2fd933accE 0000000000000000 00000000000008b2 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h3ca05431fca7f111E 0000000000000000 00000000000008a7 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h9e9b74036a09f988E 0000000000000000 00000000000008a7 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h17faeec7c6bcd419E 0000000000000000 00000000000008a7 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h0ffb51f4964ed6ceE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17heb7e911aa99bbf5dE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17he7bfdbd6dfa5ac29E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hd18822075d511181E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hb61e1a19b403b1dcE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hb1027a0dc894eba6E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17ha0741db412d99f45E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h98afe8d0ca10cceeE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h8abef05558a3c4f2E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h849d11b6bebe9278E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h7c8ebff8c1be3aa9E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h7338175ed42fa3caE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h724ffb53ba431d28E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h71086c82995b886bE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h70783729b562a08fE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h6d02d4b87f4eaafeE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h4bf8a330220afc24E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h4b1dd4a84bf873bfE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h3a14427be484f4c7E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h386bff121449dde6E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h36a9d1a57d581c57E 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h2e0652222211a37eE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h271ba17415c5779aE 0000000000000000 0000000000000898 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h249f5ba3c83aa03aE 0000000000000000 0000000000000891 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h37e10d4649313505E 0000000000000000 0000000000000890 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17haebe7d7d6df34e4bE 0000000000000000 000000000000087d T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hd9d54335aa52015fE 0000000000000000 0000000000000864 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h510b9bc00ab072ecE 0000000000000000 0000000000000860 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hee70fe5fe0c8f848E 0000000000000000 0000000000000860 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17hbe2f61f42d7566c7E 0000000000000000 000000000000083c T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h64a2219dde95eae3E 0000000000000000 000000000000083c T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$4read17h5eb9c7d99057006cE 0000000000000000 00000000000007bb T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h5cb073073cb83e38E 0000000000000000 00000000000007b6 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h2d5c09e4a2f87585E 0000000000000000 000000000000078f T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h103bb65b7595e7b4E 0000000000000000 0000000000000731 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hb27fc0d58bc3bc19E 0000000000000000 0000000000000710 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h40e6027dd5fbcd65E 0000000000000000 000000000000070b T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hd8dcc5de2bc83bf5E 0000000000000000 000000000000070b T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hc44afe4e53e53dc0E 0000000000000000 00000000000006ed T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h70d50c00ebc29ae1E 0000000000000000 00000000000006e7 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hfaea6000b7cf7056E 0000000000000000 00000000000006e7 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h963bc64a0f94df35E 0000000000000000 00000000000006e7 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h673fb00da11231d7E 0000000000000000 00000000000006e7 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h5105f47fa6c71314E 0000000000000000 00000000000006e4 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hdee5c6b79388b11eE 0000000000000000 00000000000006d9 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hcd58bef94d1b09afE 0000000000000000 00000000000006d9 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hc0ae5af3f59a5bafE 0000000000000000 00000000000006d9 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h0c32ff96c05fde3fE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hfd25b8aad7a4deabE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hf81456e9385c96fbE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hf21f10f01f8b7f7eE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hf19b494d0d781796E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hebedf1efc0fde331E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hdf47879ac14f1a8dE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hdedd6f216d6d78b6E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hda5dba423fdfaaaaE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hd4e124db0bd6e5ffE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hd0e5e7b2169cf80dE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hc767345a9717ba2bE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hc3fc85797ebe7d98E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hbe088b5cc52010faE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17haaa2dc39b7358481E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17ha9c17fdc7d56d3caE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h9ec900830d946199E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h9dfff9313c74eadaE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h931c6bac13fbfe34E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h7366b80138a17dc6E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h6ff6e470bb742d01E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h5ff3c8845df8f431E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h5f7b0bc28c5e167cE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h5df2fafd2f258f24E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h55de03f5ecdedd4eE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h3784247d90c100a0E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h15cd619962bf9258E 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h0193431d018e724eE 0000000000000000 00000000000006b5 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h01555375b467ab0fE 0000000000000000 000000000000069b T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17h8b188e304cee8694E 0000000000000000 0000000000000697 T _ZN5salsa7derived4slot29PanicGuard$LT$DB$C$Q$C$MP$GT$21overwrite_placeholder17hadbd45b692095070E 0000000000000000 0000000000000372 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h5f4d0aeeebb45f6dE 0000000000000000 00000000000002d1 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hec8f4f452a80c912E 0000000000000000 00000000000002cb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hfd93ce39c9ac9ce5E 0000000000000000 00000000000002cb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h9bdb09e618ed09acE 0000000000000000 00000000000002cb T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$12database_key17hacb020f822bef71fE 0000000000000000 00000000000002c5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hf98dd57da262f60aE 0000000000000000 00000000000002c5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hd592063b867cc7d4E 0000000000000000 00000000000002c5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h9f3deed4d94c2b8eE 0000000000000000 00000000000002c3 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hfa044305165bc4afE 0000000000000000 00000000000002c3 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hee977ed34d9a4e9eE 0000000000000000 00000000000002bf t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h9296400cb500f0c6E 0000000000000000 00000000000002bb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hd1896a667dc62c8dE 0000000000000000 00000000000002bb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h8eada82b1c5ffabaE 0000000000000000 00000000000002bb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h8d3e527dd29a6100E 0000000000000000 00000000000002bb t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h788a48e6f2127199E 0000000000000000 00000000000002ba t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hca8cb56413f03fbfE 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h994f308aee866e85E 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h8b89f079f3ce43d5E 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h7b33775e8682de83E 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h6460851e1acad285E 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h4e77c7762b3e53bfE 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h3a481ca1402badc8E 0000000000000000 00000000000002b7 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h24eab4e768123ca7E 0000000000000000 00000000000002b5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hcfe5bc5817b5cdcdE 0000000000000000 00000000000002b5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hb3b9cd4261f559afE 0000000000000000 00000000000002b5 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h03b33f05e8ae99a8E 0000000000000000 00000000000002ad t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hb43c5b5a49767197E 0000000000000000 00000000000002ad t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h792b3167031e6817E 0000000000000000 00000000000002ad t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h199797b8a37f259bE 0000000000000000 00000000000002ab t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hb9e7d8b5c82ec3d8E 0000000000000000 00000000000002a9 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h606a25ae8c6956c6E 0000000000000000 00000000000002a9 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h382b8d459bdbd897E 0000000000000000 00000000000002a8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h5f4a9de5a33e1b0eE 0000000000000000 00000000000002a8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h3847a851584414c7E 0000000000000000 00000000000002a8 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h2463c3b2ee34d1dfE 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hf3b419849ce4bc9dE 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17he136498e1ea4aa12E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hd4bd3c1c2b5b0e48E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hd43ac72073cb908bE 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17hbc812880b9f07d66E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h6a9fe1179de52948E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h5e9eae4788a512f5E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h597cf4d1d4ed3959E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h54f18a494832df52E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h455c1d50b9f93a69E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h217efd4d414b5fa2E 0000000000000000 00000000000002a6 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h04b6ab3c258033e5E 0000000000000000 0000000000000298 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h85098890c8a35603E 0000000000000000 0000000000000298 t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h1fa13ad77fe5d935E 0000000000000000 000000000000028f t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17haef6dfa7bcff3538E 0000000000000000 000000000000028d t _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$32register_with_in_progress_thread17h00f6753b91860b3dE 0000000000000000 0000000000000166 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hde96c61603094ec5E 0000000000000000 0000000000000166 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hcf43b50bb6b42acbE 0000000000000000 0000000000000166 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h0268073a1207398eE 0000000000000000 000000000000014d T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h980333667ecfa146E 0000000000000000 000000000000013c T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h322709b20572052cE 0000000000000000 000000000000013b t _ZN4core3ptr13drop_in_place17h3523cd29cbfc1fb6E 0000000000000000 0000000000000128 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h8a483bf2e226c036E 0000000000000000 0000000000000117 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb5091c27ac9e3109E 0000000000000000 0000000000000110 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$3new17h03059f7deba8e592E 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17ha74b0ffd59cdc2ecE 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h893fe65f9c90d534E 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h3585804ab68d0489E 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h193b322895053b71E 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h18a8ec287eb9e62dE 0000000000000000 000000000000010f t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h02df0ad5e5572fb0E 0000000000000000 000000000000010d t _ZN4core3ptr13drop_in_place17h1958d990b14f413aE 0000000000000000 0000000000000109 t _ZN5salsa7derived4slot18Memo$LT$DB$C$Q$GT$16check_durability17h23cd6168bd204514E 0000000000000000 0000000000000101 t _ZN4core3ptr13drop_in_place17h7cb369a774cd89b3E 0000000000000000 00000000000000f1 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$14as_table_entry17h28f1487da159c2aeE 0000000000000000 00000000000000f0 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h721dbe7a44ce8381E 0000000000000000 00000000000000f0 t _ZN4core3ptr13drop_in_place17h35da0659b6ef1699E 0000000000000000 00000000000000ef t _ZN4core3ptr13drop_in_place17h322dc91702cb9bdbE 0000000000000000 00000000000000e5 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h6255b65209d8a20eE 0000000000000000 00000000000000dd t _ZN72_$LT$core..result..Result$LT$T$C$E$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h4f983900d37aa7d3E 0000000000000000 00000000000000dd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h3ca79356b2c60cfdE 0000000000000000 00000000000000d6 t _ZN4core3ptr13drop_in_place17h7e65ab5100f6a614E 0000000000000000 00000000000000cd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb4a8147deb68bfc2E 0000000000000000 00000000000000cd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb0664a5ccc1d5b1dE 0000000000000000 00000000000000c6 t _ZN4core3ptr13drop_in_place17hee95d3d441f273f4E 0000000000000000 00000000000000c5 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$14as_table_entry17hdee1ecc68609bb31E 0000000000000000 00000000000000c3 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hfc58d71c0e2195d4E 0000000000000000 00000000000000c3 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hfb4a7d1341b65004E 0000000000000000 00000000000000c3 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hab36603fa3182dc7E 0000000000000000 00000000000000c3 T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h81361a76ab5bc6aeE 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17hbfa7e31ee8623e90E 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17hbb2a1c0657f27b52E 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17h92344a75315a02f8E 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17h75b73b7f0decc161E 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17h42a3686e87c94f9dE 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17h258cc32f425c41acE 0000000000000000 00000000000000c1 t _ZN4core3ptr13drop_in_place17h18d4dde65aebea96E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hfe207ce31856ea62E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hf2b2d591accf093fE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hcbf48b26327f52a3E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb137d512c0dcfdd0E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17ha8686dec713b7a6fE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h9ae7da8476421b3aE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h885e33ca7224a991E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h85b361f87fe2dd7cE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h7e6bafeed6e77c51E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h7a3190e35215eee8E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h78b01a017703ca37E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h6ebc630d9c88097bE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h67bada8ce517a854E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h48d48192acefe06eE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h4047bd8244902445E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h3ffc72141ba41531E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h369e1ed608e7701cE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h3460d1b56fc83674E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h2d9f9e1dd2735ea7E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h2b5c12bfb531b473E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h24d52fe0f87ae592E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h247841aa490eea54E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h1ee8bd3b9c397374E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h1e618192024f9c3aE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h1975658d07edbb86E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h09dbe8a9a2837008E 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h01446e361599f21fE 0000000000000000 00000000000000bd T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h0071bac0083ff0cfE 0000000000000000 00000000000000bc T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hee1a7e84ca1fb9daE 0000000000000000 00000000000000bc T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb79ccb6ccce7d254E 0000000000000000 00000000000000bc T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17hb675545da585aa5fE 0000000000000000 00000000000000bc T _ZN5salsa7derived4slot23Slot$LT$DB$C$Q$C$MP$GT$5evict17h8efce675bb983314E ```
nikomatsakis commented 4 years ago

See also https://github.com/salsa-rs/salsa/pull/231 which does a lot of restructuring and would presumably address this problem.

jonas-schievink commented 4 years ago

Seems like this can be closed now?

matklad commented 4 years ago

@jonas-schievink I think we produce some extra monomophisations for Drop of query table

matklad commented 3 years ago

I think we've solved the rest of the mystery in https://github.com/rust-analyzer/rust-analyzer/issues/10065.

Every crate/codegen-unit that goes from ConcerteDatabase -> dyn DatabaseTrait generates a copy of vtable. For usual queries, we counter that with our __shim functions. The problem is that the vtable also includes generated drop. That drop is not only user-provided custom drop, but the standard drop-every-field-in-order glue as well. That glue is what causing us the extra duplication we still see.

EDIT: and jonas-schievink came up with a genious hack for this: https://github.com/rust-analyzer/rust-analyzer/pull/10069

lnicola commented 3 years ago

New cargo bloat --release output:

 File  .text    Size                Crate Name
 0.2%   0.5% 69.8KiB               ide_db ide_db::apply_change::<impl ide_db::RootDatabase>::per_query_memory_usage
 0.2%   0.4% 59.2KiB              hir_def hir_def::body::lower::ExprCollector::maybe_collect_expr
 0.1%   0.3% 50.9KiB               hir_ty hir_ty::infer::expr::<impl hir_ty::infer::InferenceContext>::infer_expr_inner
 0.1%   0.3% 47.4KiB       proc_macro_srv <proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::Dispatcher<proc_macro_srv::abis::abi_1_56::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv:...
 0.1%   0.3% 39.0KiB       proc_macro_srv <proc_macro_srv::abis::abi_1_55::proc_macro::bridge::server::Dispatcher<proc_macro_srv::abis::abi_1_55::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv:...
 0.1%   0.2% 38.5KiB       proc_macro_srv <proc_macro_srv::abis::abi_1_47::proc_macro::bridge::server::Dispatcher<proc_macro_srv::abis::abi_1_47::proc_macro::bridge::server::MarkedTypes<S>> as proc_macro_srv:...
 0.1%   0.2% 27.8KiB        rust_analyzer rust_analyzer::config::field_props
 0.1%   0.2% 26.1KiB              hir_def hir_def::nameres::collector::ModCollector::collect
 0.1%   0.2% 24.0KiB        rust_analyzer rust_analyzer::cli::flags::RustAnalyzer::parse_
 0.1%   0.1% 22.2KiB                  ide ide::hover::hover
 0.1%   0.1% 20.6KiB          chalk_solve <chalk_solve::rust_ir::AssociatedTyDatum<I> as chalk_solve::clauses::program_clauses::ToProgramClauses<I>>::to_program_clauses::{{closure}}
 0.1%   0.1% 19.9KiB        project_model project_model::workspace::ProjectWorkspace::to_crate_graph
 0.1%   0.1% 19.0KiB       pulldown_cmark pulldown_cmark::parse::Parser::handle_inline_pass1
 0.1%   0.1% 18.6KiB        rust_analyzer rust_analyzer::main_loop::<impl rust_analyzer::global_state::GlobalState>::handle_event
 0.1%   0.1% 18.0KiB               hir_ty hir_ty::diagnostics::decl_check::DeclValidator::validate_item
 0.0%   0.1% 17.4KiB                  std std::backtrace_rs::symbolize::gimli::elf::<impl std::backtrace_rs::symbolize::gimli::Mapping>::new::{{closure}}
 0.0%   0.1% 17.1KiB          ide_assists ide_assists::handlers::extract_function::extract_function
 0.0%   0.1% 16.9KiB               hir_ty chalk_solve::clauses::builder::ClauseBuilder<I>::push_binders
 0.0%   0.1% 16.7KiB                  ide ide::syntax_highlighting::highlight::element
 0.0%   0.1% 16.0KiB        rust_analyzer rust_analyzer::cli::analysis_stats::<impl rust_analyzer::cli::flags::AnalysisStats>::run
 0.0%   0.1% 15.4KiB                  mbe mbe::expander::matcher::match_loop_inner
 0.0%   0.1% 15.1KiB               notify notify::inotify::EventLoop::event_loop_thread
 0.0%   0.1% 15.0KiB              hir_def hir_def::nameres::collector::collect_defs
 0.0%   0.1% 14.9KiB               ide_db ide_db::helpers::insert_use::insert_use
 0.0%   0.1% 14.8KiB       pulldown_cmark pulldown_cmark::parse::FirstPass::parse_block
 0.0%   0.1% 14.6KiB                  std std::backtrace_rs::symbolize::gimli::Cache::with_global
 0.0%   0.1% 14.5KiB       ide_completion ide_completion::context::CompletionContext::fill
 0.0%   0.1% 14.2KiB      cargo_metadata? <cargo_metadata::_::<impl serde::de::Deserialize for cargo_metadata::Package>::deserialize::__Visitor as serde::de::Visitor>::visit_map
 0.0%   0.1% 13.8KiB               hir_ty <chalk_ir::Ty<hir_ty::interner::Interner> as hir_ty::display::HirDisplay>::hir_fmt
 0.0%   0.1% 13.5KiB       rust_analyzer? <rust_analyzer::config::Config as core::clone::Clone>::clone
 0.0%   0.1% 13.4KiB        rust_analyzer rust_analyzer::config::ConfigData::from_json
 0.0%   0.1% 12.9KiB          ide_assists ide_assists::utils::gen_trait_fn_body::gen_trait_fn_body
 0.0%   0.1% 12.7KiB           serde_json serde_json::value::de::visit_object
 0.0%   0.1% 12.5KiB        rust_analyzer rust_analyzer::main
 0.0%   0.1% 12.5KiB               ide_db ide_db::search::FindUsages::search
 0.0%   0.1% 12.3KiB                  ide ide::extend_selection::extend_selection
 0.0%   0.1% 12.2KiB              ide_ssr ide_ssr::matching::Matcher::attempt_match_node
 0.0%   0.1% 12.0KiB               hir_ty chalk_solve::infer::unify::Unifier<I>::generalize_ty
 0.0%   0.1% 12.0KiB       cargo_metadata <&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1% 11.8KiB               hir_ty hir_ty::db::HirDatabaseGroupStorage__::new
 0.0%   0.1% 11.7KiB rustc_ap_rustc_lexer rustc_ap_rustc_lexer::<impl rustc_ap_rustc_lexer::cursor::Cursor>::advance_token
 0.0%   0.1% 11.7KiB               syntax syntax::validation::validate
 0.0%   0.1% 11.6KiB        project_model <&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1% 11.6KiB               hir_ty chalk_solve::clauses::builder::ClauseBuilder<I>::push_binders
 0.0%   0.1% 11.5KiB               hir_ty hir_ty::infer::pat::<impl hir_ty::infer::InferenceContext>::infer_pat
 0.0%   0.1% 11.0KiB        rust_analyzer rust_analyzer::to_proto::completion_items
 0.0%   0.1% 10.9KiB               parser parser::grammar::expressions::atom::atom_expr
 0.0%   0.1% 10.6KiB              hir_def hir_def::find_path::find_path_inner
 0.0%   0.1% 10.3KiB        rust_analyzer serde_json::value::de::visit_object
 0.0%   0.1% 10.3KiB                  ide ide::goto_definition::goto_definition
 0.0%   0.1% 10.3KiB              hir_def hir_def::db::DefDatabaseGroupStorage__::new
 0.0%   0.1% 10.1KiB        project_model project_model::cargo_workspace::CargoWorkspace::new
 0.0%   0.1% 10.1KiB           serde_json serde_json::value::de::visit_array
 0.0%   0.1% 10.0KiB               hir_ty hir_ty::diagnostics::expr::BodyValidationDiagnostic::collect
 0.0%   0.1% 10.0KiB               hir_ty chalk_recursive::solve::SolveIteration::solve_iteration
 0.0%   0.1%  9.9KiB          ide_assists ide_assists::utils::gen_trait_fn_body::gen_partial_eq
 0.0%   0.1%  9.9KiB               hir_ty chalk_solve::clauses::program_clauses_that_could_match
 0.0%   0.1%  9.8KiB       ide_completion ide_completion::completions::postfix::complete_postfix
 0.0%   0.1%  9.7KiB       cargo_metadata <&mut serde_json::de::Deserializer<R> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1%  9.6KiB               hir_ty chalk_recursive::fulfill::Fulfill<I,Solver>::solve
 0.0%   0.1%  9.4KiB          ide_assists ide_assists::assist_context::Assists::add
 0.0%   0.1%  9.3KiB              hir_def hir_def::item_tree::lower::Ctx::lower_mod_item
 0.0%   0.1%  9.3KiB          ide_assists ide_assists::utils::suggest_name::for_variable
 0.0%   0.1%  9.3KiB              hir_def hir_def::nameres::path_resolution::<impl hir_def::nameres::DefMap>::resolve_path_fp_with_macro_single
 0.0%   0.1%  9.2KiB          ide_assists ide_assists::utils::gen_trait_fn_body::gen_debug_impl
 0.0%   0.1%  9.1KiB                  std addr2line::ResUnit<R>::parse_lines
 0.0%   0.1%  9.1KiB          miniz_oxide miniz_oxide::inflate::core::decompress
 0.0%   0.1%  9.1KiB                  ide ide::syntax_highlighting::traverse
 0.0%   0.1%  9.0KiB         regex_syntax <regex_syntax::hir::translate::TranslatorI as regex_syntax::ast::visitor::Visitor>::visit_post
 0.0%   0.1%  8.8KiB                  ide ide::join_lines::remove_newlines
 0.0%   0.1%  8.8KiB        rust_analyzer rust_analyzer::caps::server_capabilities
 0.0%   0.1%  8.8KiB              hir_def hir_def::item_tree::pretty::Printer::print_mod_item
 0.0%   0.1%  8.8KiB      ide_diagnostics ide_diagnostics::handlers::unlinked_file::unlinked_file
 0.0%   0.1%  8.7KiB                  ide ide::folding_ranges::folding_ranges
 0.0%   0.1%  8.7KiB               ide_db ide_db::helpers::import_assets::import_for_item
 0.0%   0.1%  8.7KiB                  ide pulldown_cmark_to_cmark::cmark_with_options
 0.0%   0.1%  8.6KiB         regex_syntax <regex_syntax::hir::translate::TranslatorI as regex_syntax::ast::visitor::Visitor>::visit_class_set_item_post
 0.0%   0.1%  8.6KiB               parser parser::grammar::items::maybe_item
 0.0%   0.1%  8.4KiB                  ide ide::inlay_hints::inlay_hints
 0.0%   0.1%  8.4KiB        project_model <serde::__private::de::content::ContentDeserializer<E> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1%  8.4KiB             flycheck <serde::__private::de::content::ContentDeserializer<E> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1%  8.4KiB                  ide pulldown_cmark_to_cmark::cmark_with_options
 0.0%   0.1%  8.3KiB              hir_def hir_def::import_map::ImportMap::import_map_query
 0.0%   0.1%  8.2KiB        rust_analyzer rust_analyzer::config::Config::json_schema
 0.0%   0.1%  8.2KiB       regex_automata regex_automata::minimize::Minimizer<S>::run
 0.0%   0.1%  8.2KiB         tracing_tree tracing_tree::format::Buffers::indent_current
 0.0%   0.1%  8.2KiB          ide_assists ide_assists::handlers::extract_function::format_function
 0.0%   0.1%  8.2KiB       ide_completion ide_completion::completions::trait_impl::complete_trait_impl
 0.0%   0.1%  8.1KiB       proc_macro_srv <proc_macro_srv::abis::abi_1_56::proc_macro::bridge::api_tags::Method as proc_macro_srv::abis::abi_1_56::proc_macro::bridge::rpc::Encode<S>>::encode
 0.0%   0.1%  8.1KiB               hir_ty chalk_solve::clauses::builder::ClauseBuilder<I>::push_binders
 0.0%   0.1%  8.0KiB        rust_analyzer <serde::__private::de::content::ContentRefDeserializer<E> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.1%  7.8KiB        rust_analyzer rust_analyzer::diagnostics::to_proto::map_rust_diagnostic_to_lsp
 0.0%   0.1%  7.8KiB                  mbe mbe::expander::matcher::match_
 0.0%   0.1%  7.7KiB        rust_analyzer serde_json::value::de::visit_array
 0.0%   0.0%  7.7KiB        rust_analyzer core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
 0.0%   0.0%  7.7KiB        project_model <serde::__private::de::content::ContentDeserializer<E> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.0%  7.7KiB             flycheck <serde::__private::de::content::ContentDeserializer<E> as serde::de::Deserializer>::deserialize_struct
 0.0%   0.0%  7.7KiB           dissimilar dissimilar::diff
 0.0%   0.0%  7.6KiB                  ide ide::rename::rename
 0.0%   0.0%  7.6KiB           hir_expand hir_expand::builtin_macro::option_env_expand
38.7%  89.1% 13.5MiB                      And 39248 smaller methods. Use -n N to show more.
43.4% 100.0% 15.1MiB                      .text section size, the file size is 34.8MiB