RFR: 8302369: Reduce the stack size of the C1 compiler
SUN Guoyun
duke at openjdk.org
Thu Feb 16 01:29:45 UTC 2023
On Wed, 15 Feb 2023 19:02:28 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
>> The current fact is that C1 uses more stack space than the C2 compiler, taking method `java.lang.Object::<init>`as an example on the x86_64 platform , the stack size used is 48 bytes for C1 compiler, while only 16 bytes is used for C2 compiler.
>>
>> ========== C1-compiled nmethod =====
>> 0x00007f93311cc747: push %rbp
>> 0x00007f93311cc748: sub $0x30,%rsp // stack sizes is 48 bytes
>>
>>
>> ========== C2-compiled nmethod =======
>> pushq rbp # Save rbp
>> subq rsp, #16 # Create frame //stack sizes is 16 bytes
>>
>> After this patch, the C1 compiler will use less stack space. also taking method `java.lang.Object::<init>`as an example on the x86_64 platform , the stack size used is 16 bytes, which is the same as C2 compiler.
>>
>> ========== C1-compiled nmethod =====
>> 0x00007f80491ce647: push %rbp
>> 0x00007f80491ce648: sub $0x10,%rsp //stack sizes is 16 bytes
>
> My -Xcomp run without changes passed without issues. So something in these changes causing problem on machines we use (AMD and old MacOs x86 which have only AVX2).
Thanks @vnkozlov a lot. The machines with the fatal SEGV error is 32-bit architecture, right? Or can you list the hardware information of the machine to me?
-------------
PR: https://git.openjdk.org/jdk/pull/12548
More information about the hotspot-compiler-dev
mailing list