-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Closed
Labels
Description
Bugzilla Link | 47909 |
Version | unspecified |
OS | Windows NT |
CC | @alinas,@vns-mn,@rnk |
Extended Description
The NPM inliner does not perform alloca merging. Lifetimes can help mitigate the issue of not reusing stack slots when inlining multiple functions, but they are not emitted at -O0. If we have something like
void a(void*);
attribute((always_inline)) void b() {
long long l[10000];
a(l);
}
void c() {
b();
b();
b();
b();
b();
b();
b();
b();
b();
b();
b();
b();
b();
}
the stack usage in c() is much much larger under the NPM than in the legacy PM under -O0.