Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8325497

Investigate C2 issues identified by the "JVM Performance Comparison for JDK 21"

XMLWordPrintable

      This is an umbrella to keep track of investigating and fixing C2 performance issues identified by the "JVM Performance Comparison for JDK 21":
      https://ionutbalosin.com/2024/02/jvm-performance-comparison-for-jdk-21/

      The goal is to list benchmarks that identify performance issues in C2, file corresponding RFEs and link them here:
      - ArithmeticCanonicalizationBenchmark: JDK-8325495
      - MethodArgsBusterBenchmark: JDK-8325467
      - IfConditionalBranchBenchmark: JDK-8317424
      - ScalarEvolutionAndLoopOptimizationBenchmark: JDK-8317424 (vectorization would do most of the trick, but maybe we want to do it with a special formula?)
      - LockCoarseningBenchmark : JDK-8341404

      Known issues:
      - Escape Analysis:
        - JDK-8276455, JDK-8287061, JDK-8289943, JDK-8155769
        - Partial Escape Analysis in HotSpot C2: https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2022-November/059990.html, https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2023-March/063118.html, https://cr.openjdk.org/~cslucas/escape-analysis/EscapeAnalysis.html
        - https://github.com/microsoft/openjdk-proposals/blob/main/stack_allocation/Stack_Allocation_JEP.md
      - Inlining:
        - Missing support for polymorphic guarded inlining in C2, see https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2020-February/036901.html
        - JDK-8280365
      - Vectorization:
        - see benchmark: IfConditionalBranchBenchmark, ScalarEvolutionAndLoopOptimizationBenchmark
        - requires if-conversion and improved reduction heuristic
        - see AutoVectorization umbrella JDK-8317424
      - Loop Fission / Fusion
        - benchmark: LoopFissionBenchmark, LoopFusionBenchmark
        - generally difficult to get right, would need a good heuristic / cost model
        - also tricky with safepoints: would have to remove all safepoints in the scope of the fused / fissioned loops.

            Unassigned Unassigned
            thartmann Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: