diff options
| author | Jubilee <workingjubilee@gmail.com> | 2024-10-04 14:11:35 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-04 14:11:35 -0700 |
| commit | 554daa007f663944b3411ea0713062c2646a006f (patch) | |
| tree | 1a5d33290d1de826b3367ddb26e7612f558e0ea7 /compiler/rustc_data_structures/src/stack.rs | |
| parent | 5a8fcab713678d953513ccd8524be29dba0e9330 (diff) | |
| parent | 162ee75e436875afc0ff877e4fca90a13f879a1c (diff) | |
| download | rust-554daa007f663944b3411ea0713062c2646a006f.tar.gz rust-554daa007f663944b3411ea0713062c2646a006f.zip | |
Rollup merge of #131116 - mustartt:aix-stack-size, r=petrochenkov
Increase Stack Size for AIX On AIX, there are limited support for tail call optimizations, so we need to set a larger stack size value. Fixes the following tests on AIX: ``` [ui] tests/ui/associated-consts/issue-93775.rs [ui] tests/ui/closures/deeply-nested_closures.rs [ui] tests/ui/issues/issue-74564-if-expr-stack-overflow.rs [ui] tests/ui/parser/survive-peano-lesson-queue.rs ```
Diffstat (limited to 'compiler/rustc_data_structures/src/stack.rs')
| -rw-r--r-- | compiler/rustc_data_structures/src/stack.rs | 4 |
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 |
