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

Shenandoah does not need barriers before CreateEx

XMLWordPrintable

    • gc
    • b10

      Current vmTestbase_vm_mlvm tests fail with 32-bit binaries like this:

      $ CONF=linux-x86-server-fastdebug make images test TEST_VM_OPTS="-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:-TieredCompilation" TEST=vmTestbase/vm/mlvm/indy/stress/gc/lotsOfCallSites/Test.java
      ....

      need barrier on?: ins:
       151 CallStaticJava === 686 92 93 8 1 ( 132 13 26 1 1 1 1 14 1 1 1 1 1 1 26 132 1 ) [[ 152 153 154 156 ]] # Static java.lang.invoke.MethodHandleNatives::resolve java/lang/invoke/MemberName:exact * ( java/lang/invoke/MemberName:exact *, java/lang/Class:exact *, int ) MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5 !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
       158 Catch === 152 153 [[ 159 160 ]] !orig=[656] !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
       153 Proj === 151 [[ 206 158 683 163 332 682 660 435 415 312 347 ]] #1 !orig=[555] !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
       160 CatchProj === 158 [[ 689 163 ]] #1@bci -1 !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5
       163 CreateEx === 160 153 [[ 164 164 696 683 ]] #java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull * !jvms: MemberName$Factory::resolve @ bci:34 MemberName$Factory::resolveOrFail @ bci:5

      CreateEx instantiates the exceptions from either the new allocations, or from the prebuilt exception table. In either case, we do not need barriers for it.

            shade Aleksey Shipilev
            shade Aleksey Shipilev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: