RFR: 8302369: Reduce the stack size of the C1 compiler

SUN Guoyun duke at openjdk.org
Tue Feb 14 03:52:33 UTC 2023


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

-------------

Commit messages:
 - 8302369: Reduce the stack size of the C1 compiler

Changes: https://git.openjdk.org/jdk/pull/12548/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12548&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302369
  Stats: 16 lines in 5 files changed: 0 ins; 0 del; 16 mod
  Patch: https://git.openjdk.org/jdk/pull/12548.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12548/head:pull/12548

PR: https://git.openjdk.org/jdk/pull/12548


More information about the hotspot-compiler-dev mailing list