about summary refs log tree commit diff
path: root/compiler/rustc_data_structures/src/stack.rs
diff options
context:
space:
mode:
authorHenry Jiang <henry.jiang1@ibm.com>2024-10-01 16:06:24 -0400
committerHenry Jiang <henry.jiang1@ibm.com>2024-10-01 16:06:24 -0400
commit9be9141730ce8f78d5ffa9f72541f2eca13ab1d1 (patch)
treef9ed7047e6cefb93f36f734e354d4af1e96617a7 /compiler/rustc_data_structures/src/stack.rs
parentc817d5dc2050ec443516f9700c19b1419593a83d (diff)
downloadrust-9be9141730ce8f78d5ffa9f72541f2eca13ab1d1.tar.gz
rust-9be9141730ce8f78d5ffa9f72541f2eca13ab1d1.zip
increase stack size for aix
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..72add175091 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