about summary refs log tree commit diff
path: root/compiler/rustc_data_structures/src/stack.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-10-04 22:05:15 +0000
committerbors <bors@rust-lang.org>2024-10-04 22:05:15 +0000
commitbece740dad2061cbc64f067ed80ccf98fdfb78f2 (patch)
tree1f663fcca3af5e1511e9bcf6571146b3d7ff0978 /compiler/rustc_data_structures/src/stack.rs
parent14f303bc1430a78ddaa91b3e104bbe4c0413184e (diff)
parent4778893968d1a6fd8dbe22c8cba83dd00f54f3c0 (diff)
downloadrust-bece740dad2061cbc64f067ed80ccf98fdfb78f2.tar.gz
rust-bece740dad2061cbc64f067ed80ccf98fdfb78f2.zip
Auto merge of #131269 - workingjubilee:rollup-bf7fzhf, r=workingjubilee
Rollup of 10 pull requests

Successful merges:

 - #130453 (Add x86_64-unknown-trusty as tier 3 target)
 - #130518 (Stabilize the `map`/`value` methods on `ControlFlow`)
 - #131116 (Increase Stack Size for AIX)
 - #131171 (Fix `target_env` in `avr-unknown-gnu-atmega328`)
 - #131174 (Fix `target_abi` in `sparc-unknown-none-elf`)
 - #131177 ( Stabilize 5 `const_mut_refs`-dependent API)
 - #131238 (Remove mw from triagebot.toml)
 - #131240 (Fix typo in csky-unknown-linux-gnuabiv2.md)
 - #131257 ([rustdoc] Fix list margins)
 - #131264 (Fix some `pub(crate)` that were undetected bc of `#[instrument]`)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_data_structures/src/stack.rs')
-rw-r--r--compiler/rustc_data_structures/src/stack.rs4
1 files changed, 4 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