RFR(L): JEP165: Compiler Control
Zoltán Majó
zoltan.majo at oracle.com
Wed Oct 7 13:27:42 UTC 2015
Hi Nils,
On 10/07/2015 12:38 PM, Nils Eliasson wrote:
> Hi all,
>
> Latest webrev including fixes after comments from Chris and Zoltan:
> http://cr.openjdk.java.net/~neliasso/8046155/webrev.09/
thank you for the updated version. It seems, however, that the
DisableIntrinsic flag does not work correctly on the per-method level.
If I execute the MathTest program I've sent out before with the
command-line option
-XX:CompileCommand=option,MathTest::test1,ccstr,DisableIntrinsic,_dsin
with jdk9-b83, I get the expected behavior (Math.sin is inlined into
test2 but not into test1):
128 1 b 3 MathTest::test1 (7 bytes)
@ 3 java.lang.Math::sin (5 bytes)
@ 1 java/lang/StrictMath::sin (not
loaded) not inlineable
130 2 n 0 java.lang.StrictMath::sin (native) (static)
132 3 b 3 MathTest::test2 (7 bytes)
@ 3 java.lang.Math::sin (5 bytes) intrinsic
If I execute the test case with a locally-built jdk patched with
webrev.09, I get an erronous behavior (Math.sin is not inlined into
test2 although it should be):
133 1 b 3 MathTest::test1 (7 bytes)
@ 3 java.lang.Math::sin (5 bytes)
@ 1 java/lang/StrictMath::sin (not
loaded) not inlineable
136 2 n 0 java.lang.StrictMath::sin (native) (static)
138 3 b 3 MathTest::test2 (7 bytes)
@ 3 java.lang.Math::sin (5 bytes)
@ 1 java.lang.StrictMath::sin (0
bytes) native method
Could you please check why that happens?
Thank you and best regards,
Zoltan
>
> Regards,
> //Nils
>
>
>
> On 2015-09-22 19:21, Nils Eliasson wrote:
> > Hi, > > This is the initial RFR for JEP165: Compiler Control. This
> feature > enables runtime manageable, method dependent compiler flags.
> > (Immutable for the duration of a compilation.) > > The change
> includes: - A parser for the directives format (json like) > including
> vmtests (json.cpp/hpp) - A component for construction of > compiler
> directives (directivesParser.cpp/hpp) - The directives > including the
> option definitions, default values and compilecommand > relations
> (compilerDirectives.cpp/hpp) - Diagnostic commands for > working with
> the directives - installing, removing, printing - Lots > of small
> changes wherever we access flags or legacy compilecommands > in the
> compiler > > Notes: The feature is documented in the JEP >
> (https://bugs.openjdk.java.net/browse/JDK-8046155). > > Currently only
> a small amount of compiler flags are included in the > change. The
> flags are a representative selection of different types > targeting
> both compilers. All of them existed as CompilerOracle > option
> commands. Two commands was not included in the directives due > to
> time constraints - CompilerThresholdScaling and UseRTMLocks. Both >
> are accessed from runtime (outside any compiler) and requires some >
> special handling. (Solved but not implemented.) > > Full backwards
> compatibility with CompileCommands is implemented but > can be turned
> off with flag -XX:CompileCommandCompatibilty. Also meta > handling the
> compatibility flag by supporting it in the directives > (test
> feature). > > The change contain some rough edges that will polished
> over the > coming days. > > JEP:
> https://bugs.openjdk.java.net/browse/JDK-8046155 Hotspot webrev: >
> http://cr.openjdk.java.net/~neliasso/8046155/webrev.01/ JDK webrev: >
> http://cr.openjdk.java.net/~neliasso/8046155/webrev_jdk.01/ > > Please
> review! > > Best regards, Nils Eliasson
>
>
More information about the hotspot-compiler-dev
mailing list