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

[lworld] compiler/gcbarriers/TestZGCBarrierElision.java fails after JDK-8329205

XMLWordPrintable

      JDK-8329205 added runtime checks to VarHandleReferences$FieldInstanceReadWrite::getAndSet​ that are not folded by C2:

      1) Method "static void compiler.gcbarriers.TestZGCCorrectBarrierElision.testLoadThenAtomic(compiler.gcbarriers.Outer,compiler.gcbarriers.Inner)" - [Failed IR rules: 1]:
         * @IR rule 1: "@compiler.lib.ir_framework.IR(phase={FINAL_CODE}, applyIfPlatformAnd={}, applyIfCPUFeatureOr={}, counts={"_#C#Z_LOAD_P_WITH_BARRIER_FLAG#_", "strong", "1"}, failOn={}, applyIfPlatform={}, applyIfPlatformOr={}, applyIfOr={}, applyIfCPUFeatureAnd={}, applyIf={}, applyIfCPUFeature={}, applyIfAnd={}, applyIfNot={})"
           > Phase "Final Code":
             - counts: Graph contains wrong number of nodes:
               * Constraint 1: "(\\d+(\\s){2}(zLoadP\\S*.*)+(\\s){2}===.*barrier\\(\\s*strong\\s*\\))"
                 - Failed comparison: [found] 2 = 1 [given]
                   - Matched nodes (2):
                     * 31 zLoadP === 112 14 12 32 [[ 33 27 29 ]] compiler/gcbarriers/Inner * barrier(strong )
                     * 34 zLoadP === _ 38 35 36 [[ 37 43 72 ]] java/lang/Class (java/io/Serializable,java/lang/constant/Constable,java/lang/reflect/AnnotatedElement,java/lang/invoke/TypeDescriptor,java/lang/reflect/GenericDeclaration,java/lang/reflect/Type,java/lang/invoke/TypeDescriptor$OfField):exact * barrier(strong )

      I'll disable the corresponding IR rule with https://github.com/openjdk/valhalla/pull/1064.

            chagedorn Christian Hagedorn
            thartmann Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: