diff options
| author | bors <bors@rust-lang.org> | 2024-10-14 15:11:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-10-14 15:11:07 +0000 |
| commit | bd8f2afc449999aa6310cc9f42029d9bfdd5e910 (patch) | |
| tree | 6eebb25d13a6ace45d712257d931527662949fdc /compiler/rustc_data_structures/src | |
| parent | 15f0242c74c91cce4a8fd8b17ccfbaf46b03ec62 (diff) | |
| parent | 543d226589d152a27a5c150e415b451e50986c79 (diff) | |
| download | rust-bd8f2afc449999aa6310cc9f42029d9bfdd5e910.tar.gz rust-bd8f2afc449999aa6310cc9f42029d9bfdd5e910.zip | |
Auto merge of #3970 - RalfJung:rustup, r=RalfJung
Rustup
Diffstat (limited to 'compiler/rustc_data_structures/src')
| -rw-r--r-- | compiler/rustc_data_structures/src/stack.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_data_structures/src/unhash.rs | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/compiler/rustc_data_structures/src/stack.rs b/compiler/rustc_data_structures/src/stack.rs index 7ff1339c5ab..3d6d0003483 100644 --- a/compiler/rustc_data_structures/src/stack.rs +++ b/compiler/rustc_data_structures/src/stack.rs @@ -5,7 +5,11 @@ const RED_ZONE: usize = 100 * 1024; // 100k // Only the first stack that is pushed, grows exponentially (2^n * STACK_PER_RECURSION) from then // on. This flag has performance relevant characteristics. Don't set it too high. +#[cfg(not(target_os = "aix"))] const STACK_PER_RECURSION: usize = 1024 * 1024; // 1MB +// LLVM for AIX doesn't feature TCO, increase recursion size for workaround. +#[cfg(target_os = "aix")] +const STACK_PER_RECURSION: usize = 16 * 1024 * 1024; // 16MB /// Grows the stack on demand to prevent stack overflow. Call this in strategic locations /// to "break up" recursive calls. E.g. almost any call to `visit_expr` or equivalent can benefit diff --git a/compiler/rustc_data_structures/src/unhash.rs b/compiler/rustc_data_structures/src/unhash.rs index 48e21a9dab1..0617ef83aad 100644 --- a/compiler/rustc_data_structures/src/unhash.rs +++ b/compiler/rustc_data_structures/src/unhash.rs @@ -3,6 +3,7 @@ use std::hash::{BuildHasherDefault, Hasher}; pub type UnhashMap<K, V> = HashMap<K, V, BuildHasherDefault<Unhasher>>; pub type UnhashSet<V> = HashSet<V, BuildHasherDefault<Unhasher>>; +pub type UnindexMap<K, V> = indexmap::IndexMap<K, V, BuildHasherDefault<Unhasher>>; /// This no-op hasher expects only a single `write_u64` call. It's intended for /// map keys that already have hash-like quality, like `Fingerprint`. |
