1
Fork 0
rust/compiler/rustc_data_structures/src
Matthias Krüger 648a8e314a
Rollup merge of #94306 - Mark-Simulacrum:dom-fixups, r=jackh726
Avoid exhausting stack space in dominator compression

Doesn't add a test case -- I ended up running into this while playing with the generated example from #43578, which we could do with a run-make test (to avoid checking a large code snippet into tree), but I suspect we don't want to wait for it to compile (locally it takes ~14s -- not terrible, but doesn't seem worth it to me). In practice stack space exhaustion is difficult to test for, too, since if we set the bound too low a different call structure above us (e.g., a nearer ensure_sufficient_stack call) would let the test pass even with the old impl, most likely.

Locally it seems like this manages to perform approximately equivalently to the recursion, but will run perf to confirm.
2022-02-26 07:52:44 +01:00
..
base_n
binary_search_util Adopt let else in more places 2022-02-19 17:27:43 +01:00
fingerprint Make Fingerprint::combine_commutative associative 2022-01-03 19:07:29 +01:00
graph Avoid exhausting stack space in dominator compression 2022-02-23 16:07:56 -05:00
intern Rename PtrKey as Interned and improve it. 2022-02-15 15:50:29 +11:00
obligation_forest obligation forest docs 2022-02-21 12:00:26 +01:00
owning_ref Also fix “a OwningRef 2021-08-24 02:28:38 +02:00
sip128 SipHasher128: improve constant names and add more comments 2020-10-11 23:48:35 -07:00
small_c_str
snapshot_map Call the method fork instead of clone and add proper comments 2022-02-14 12:57:20 -03:00
sorted_map Stop enabling in_band_lifetimes in rustc_data_structures 2021-12-05 20:17:35 -08:00
sso Stop enabling in_band_lifetimes in rustc_data_structures 2021-12-05 20:17:35 -08:00
stable_hasher Fix isize optimization in StableHasher for big-endian architectures 2022-02-03 11:47:41 +01:00
tagged_ptr Small performance tweaks 2021-12-12 12:35:01 +08:00
thin_vec eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
tiny_list Move some test-only code to test files 2021-03-17 10:31:30 -04:00
transitive_relation Move some test-only code to test files 2021-03-17 10:31:30 -04:00
vec_map eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
atomic_ref.rs
base_n.rs Apply clippy suggestions 2021-10-10 15:38:19 +02:00
captures.rs Remove #[allow(unused_lifetimes)] which is now unnecessary 2021-06-17 08:56:54 +09:00
fingerprint.rs Provide copy-free access to raw Decoder bytes 2022-02-22 18:11:59 -05:00
flock.rs Fix the flock fallback implementation 2021-08-15 18:44:06 +02:00
frozen.rs
functor.rs Make IdFunctor::try_map_id panic-safe 2021-12-07 11:11:23 +00:00
fx.rs
intern.rs Switch bootstrap cfgs 2022-02-25 08:00:52 -05:00
jobserver.rs datastructures: replace lazy_static by SyncLazy from std 2020-09-01 22:06:47 +01:00
lib.rs Switch bootstrap cfgs 2022-02-25 08:00:52 -05:00
macros.rs Introduce ChunkedBitSet and use it for some dataflow analyses. 2022-02-23 10:18:49 +11:00
map_in_place.rs
memmap.rs Add safety comment to StableAddress impl for Mmap 2021-04-03 14:51:05 +02:00
profiling.rs Remove redundant [..]s 2021-12-09 00:01:29 +01:00
sharded.rs Use <[T; N]>::map in Sharded instead of SmallVec and unsafe code 2021-09-18 15:07:24 +02:00
sip128.rs Use const generics in SipHasher128's short_write 2022-02-05 19:55:44 +01:00
small_c_str.rs Remove redundant [..]s 2021-12-09 00:01:29 +01:00
sorted_map.rs Use SortedMap in HIR. 2021-10-21 23:08:57 +02:00
stable_hasher.rs Use const generics in SipHasher128's short_write 2022-02-05 19:55:44 +01:00
stable_map.rs
stable_set.rs
stack.rs Allow inlining of ensure_sufficient_stack() 2022-02-12 11:30:04 +01:00
steal.rs more clippy fixes 2021-11-07 16:59:05 +01:00
svh.rs Make Decodable and Decoder infallible. 2022-01-22 10:38:31 +11:00
sync.rs Fix typos “a”→“an” 2021-08-22 15:35:11 +02:00
tagged_ptr.rs Miscellaneous inlining improvements 2021-06-02 08:49:58 +02:00
temp_dir.rs Capitalize safety comments 2020-09-08 22:37:18 -04:00
thin_vec.rs Rustdoc: use ThinVec for GenericArgs bindings 2022-01-01 11:29:14 +01:00
tiny_list.rs Apply clippy suggestions 2021-10-10 15:38:19 +02:00
transitive_relation.rs Adopt let else in more places 2022-02-19 17:27:43 +01:00
unhash.rs Avoid rehashing Fingerprint as a map key 2020-09-01 18:27:02 -07:00
vec_linked_list.rs Stop enabling in_band_lifetimes in rustc_data_structures 2021-12-05 20:17:35 -08:00
vec_map.rs Add VecMap::get_value_matching and assert if > 1 element 2021-07-23 08:44:23 -03:00
work_queue.rs Remove (lots of) dead code 2021-03-27 22:16:33 -04:00