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 ```
This commit is contained in:
commit
554daa007f
@ -5,7 +5,11 @@
|
|||||||
|
|
||||||
// Only the first stack that is pushed, grows exponentially (2^n * STACK_PER_RECURSION) from then
|
// 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.
|
// 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
|
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
|
/// 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
|
/// to "break up" recursive calls. E.g. almost any call to `visit_expr` or equivalent can benefit
|
||||||
|
Loading…
Reference in New Issue
Block a user