valhalla/valhalla/hotspot: multiple value return caused interpreter performance regression

Sergey Kuksenko sergey.kuksenko at oracle.com
Thu Jun 8 22:46:19 UTC 2017


Hi Roland,

I've just realized that this patch causes more than 3x time interpreter 
performance regression (if method contains local variable of value type).

Question to all: How big INTERPRETER performance regression will be 
considered as OK?

I'll provide more details about the regression if we agreed that 3x 
times for the interpreter is too much.


On 06/08/2017 09:39 AM, rwestrel at redhat.com wrote:
> Changeset: 4cd1b06ce224
> Author:    roland
> Date:      2017-06-08 18:25 +0200
> URL:       http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/4cd1b06ce224
>
> multiple value return
>
> ! src/cpu/ppc/vm/globals_ppc.hpp
> ! src/cpu/sparc/vm/globals_sparc.hpp
> ! src/cpu/x86/vm/globals_x86.hpp
> ! src/cpu/x86/vm/interp_masm_x86.cpp
> ! src/cpu/x86/vm/interp_masm_x86.hpp
> ! src/cpu/x86/vm/interpreterRT_x86_32.cpp
> ! src/cpu/x86/vm/macroAssembler_x86.cpp
> ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp
> ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp
> ! src/cpu/x86/vm/stubGenerator_x86_64.cpp
> ! src/cpu/x86/vm/templateInterpreterGenerator_x86.cpp
> ! src/cpu/x86/vm/templateTable_x86.cpp
> ! src/cpu/zero/vm/globals_zero.hpp
> ! src/share/vm/c1/c1_IR.hpp
> ! src/share/vm/code/compiledMethod.cpp
> ! src/share/vm/code/debugInfoRec.cpp
> ! src/share/vm/code/debugInfoRec.hpp
> ! src/share/vm/code/nmethod.cpp
> ! src/share/vm/code/pcDesc.hpp
> ! src/share/vm/code/scopeDesc.cpp
> ! src/share/vm/code/scopeDesc.hpp
> ! src/share/vm/jvmci/jvmciCodeInstaller.cpp
> ! src/share/vm/oops/method.cpp
> ! src/share/vm/oops/method.hpp
> ! src/share/vm/oops/valueKlass.cpp
> ! src/share/vm/oops/valueKlass.hpp
> ! src/share/vm/opto/callGenerator.cpp
> ! src/share/vm/opto/callGenerator.hpp
> ! src/share/vm/opto/callnode.cpp
> ! src/share/vm/opto/callnode.hpp
> ! src/share/vm/opto/compile.cpp
> ! src/share/vm/opto/compile.hpp
> ! src/share/vm/opto/divnode.cpp
> ! src/share/vm/opto/divnode.hpp
> ! src/share/vm/opto/doCall.cpp
> ! src/share/vm/opto/escape.cpp
> ! src/share/vm/opto/generateOptoStub.cpp
> ! src/share/vm/opto/graphKit.cpp
> ! src/share/vm/opto/lcm.cpp
> ! src/share/vm/opto/machnode.cpp
> ! src/share/vm/opto/machnode.hpp
> ! src/share/vm/opto/macro.cpp
> ! src/share/vm/opto/matcher.cpp
> ! src/share/vm/opto/matcher.hpp
> ! src/share/vm/opto/memnode.cpp
> ! src/share/vm/opto/memnode.hpp
> ! src/share/vm/opto/multnode.cpp
> ! src/share/vm/opto/multnode.hpp
> ! src/share/vm/opto/output.cpp
> ! src/share/vm/opto/parse1.cpp
> ! src/share/vm/opto/runtime.cpp
> ! src/share/vm/opto/runtime.hpp
> ! src/share/vm/opto/type.cpp
> ! src/share/vm/opto/type.hpp
> ! src/share/vm/opto/valuetypenode.cpp
> ! src/share/vm/opto/valuetypenode.hpp
> ! src/share/vm/prims/jvmtiCodeBlobEvents.cpp
> ! src/share/vm/runtime/arguments.cpp
> ! src/share/vm/runtime/deoptimization.cpp
> ! src/share/vm/runtime/deoptimization.hpp
> ! src/share/vm/runtime/globals.hpp
> ! src/share/vm/runtime/safepoint.cpp
> ! src/share/vm/runtime/sharedRuntime.cpp
> ! src/share/vm/runtime/sharedRuntime.hpp
> ! src/share/vm/runtime/signature.cpp
> ! src/share/vm/runtime/signature.hpp
> ! src/share/vm/runtime/stubRoutines.cpp
> ! src/share/vm/runtime/stubRoutines.hpp
> ! src/share/vm/shark/sharkCacheDecache.cpp
> ! test/compiler/valhalla/valuetypes/ValueTypeTestBench.java
>

-- 
Best regards,
Sergey Kuksenko



More information about the valhalla-dev mailing list