1
Fork 0
rust/compiler/rustc_borrowck/src
bors 97d328012b Auto merge of #111673 - cjgillot:dominator-preprocess, r=cjgillot,tmiasko
Preprocess and cache dominator tree

Preprocessing dominators has a very strong effect for https://github.com/rust-lang/rust/pull/111344.
That pass checks that assignments dominate their uses repeatedly. Using the unprocessed dominator tree caused a quadratic runtime (number of bbs x depth of the dominator tree).

This PR also caches the dominator tree and the pre-processed dominators in the MIR cfg cache.

Rebase of https://github.com/rust-lang/rust/pull/107157
cc `@tmiasko`
2023-05-24 16:18:21 +00:00
..
constraints Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
diagnostics Compute dominators on demand for borrowck. 2023-05-17 10:28:33 +00:00
region_infer Check opaques for mismatch during writeback 2023-05-22 23:33:34 +00:00
type_check Avoid &format("...") calls in error message code. 2023-05-16 17:59:56 +10:00
util Move some utils out of rustc_const_eval 2023-04-16 12:05:54 +02:00
borrow_set.rs Remove ToRegionVid. 2023-04-13 12:20:41 +10:00
borrowck_errors.rs Add #[track_caller] to struct_span_err_with_code (drive-by cleanup) 2023-04-19 19:10:37 +00:00
constraint_generation.rs Remove ToRegionVid. 2023-04-13 12:20:41 +10:00
consumers.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
dataflow.rs Reduce BitSet size used in Borrows dataflow analysis 2023-05-09 18:50:13 +02:00
def_use.rs Make NonUseContext::AscribeUserTy carry ty::Variance 2023-05-10 09:54:56 +03:00
facts.rs Various minor Idx-related tweaks 2023-04-16 02:42:50 -07:00
invalidation.rs Cache dominators. 2023-05-17 09:36:12 +00:00
lib.rs Compute dominators on demand for borrowck. 2023-05-17 10:28:33 +00:00
location.rs Split {Idx, IndexVec, IndexSlice} into their own modules 2023-04-24 13:53:35 +00:00
member_constraints.rs remove unused muts 2023-04-28 20:19:48 +02:00
nll.rs Avoid &format("...") calls in error message code. 2023-05-16 17:59:56 +10:00
path_utils.rs Move mir::Fieldabi::FieldIdx 2023-03-28 22:22:37 -07:00
place_ext.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
places_conflict.rs Removed various double spaces in compiler source comments. 2023-01-14 17:34:59 +01:00
prefixes.rs lint auto pass 2022-11-09 20:42:16 +08:00
renumber.rs check array type of repeat exprs is wf 2023-05-04 11:22:40 +01:00
session_diagnostics.rs Don't call await a method 2023-04-27 17:18:12 +00:00
universal_regions.rs Restrict From<S> for {D,Subd}iagnosticMessage. 2023-05-03 08:44:39 +10:00
used_muts.rs Rollup merge of #108856 - Zeegomo:remove-drop-and-rep, r=tmiasko 2023-03-08 21:26:51 +01:00