Commit 39ebc37
committed
Auto merge of rust-lang#15436 - Veykril:temp-alloc, r=Veykril
Preserve `resolve_obligations_as_possible` temporary allocation across calls
This saves ~20ms in the highlihting bench on my machine
```
284ms - highlight
150ms - infer:wait @ per_query_memory_usage
150ms - infer_query
0 - PerNs::filter_visibility (436 calls)
0 - crate_def_map:wait (336 calls)
2ms - deref_by_trait (909 calls)
0 - generic_params_query (1 calls)
0 - inherent_impls_in_block_query (1 calls)
107ms - resolve_obligations_as_possible (17013 calls)
0 - trait_solve::wait (1017 calls)
0 - PerNs::filter_visibility (13 calls)
17ms - Semantics::analyze_impl (19 calls)
0 - SourceBinder::to_module_def (30 calls)
0 - attrs_query (6 calls)
0 - classify_lifetime (1 calls)
0 - classify_lifetime_ref (4 calls)
35ms - classify_name (28 calls)
54ms - classify_name_ref (452 calls)
0 - crate_def_map:wait (375 calls)
7ms - descend_into_macros (776 calls)
0 - generic_params_query (5 calls)
0 - impl_data_with_diagnostics_query (1 calls)
17ms - infer:wait (32 calls)
0 - resolve_obligations_as_possible (1 calls)
0 - source_file_to_def (1 calls)
0 - trait_solve::wait (1 calls)
```
to
```
256ms - highlight
121ms - infer:wait @ per_query_memory_usage
121ms - infer_query
0 - PerNs::filter_visibility (436 calls)
0 - crate_def_map:wait (336 calls)
2ms - deref_by_trait (909 calls)
0 - generic_params_query (1 calls)
0 - inherent_impls_in_block_query (1 calls)
81ms - resolve_obligations_as_possible (17013 calls)
0 - trait_solve::wait (1017 calls)
0 - PerNs::filter_visibility (13 calls)
17ms - Semantics::analyze_impl (19 calls)
0 - SourceBinder::to_module_def (30 calls)
0 - attrs_query (6 calls)
0 - classify_lifetime (1 calls)
0 - classify_lifetime_ref (4 calls)
35ms - classify_name (28 calls)
56ms - classify_name_ref (452 calls)
0 - crate_def_map:wait (375 calls)
7ms - descend_into_macros (776 calls)
0 - generic_params_query (5 calls)
0 - impl_data_with_diagnostics_query (1 calls)
16ms - infer:wait (32 calls)
0 - resolve_obligations_as_possible (1 calls)
0 - source_file_to_def (1 calls)
0 - trait_solve::wait (1 calls)
```1 file changed
+9
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
146 | 149 | | |
147 | 150 | | |
148 | 151 | | |
| |||
159 | 162 | | |
160 | 163 | | |
161 | 164 | | |
| 165 | + | |
162 | 166 | | |
163 | 167 | | |
164 | 168 | | |
| |||
510 | 514 | | |
511 | 515 | | |
512 | 516 | | |
513 | | - | |
514 | | - | |
515 | | - | |
| 517 | + | |
| 518 | + | |
516 | 519 | | |
| 520 | + | |
517 | 521 | | |
518 | 522 | | |
519 | 523 | | |
| |||
528 | 532 | | |
529 | 533 | | |
530 | 534 | | |
| 535 | + | |
| 536 | + | |
531 | 537 | | |
532 | 538 | | |
533 | 539 | | |
| |||
0 commit comments