RFR(L): JEP165: Compiler Control

Christian Thalinger christian.thalinger at oracle.com
Tue Sep 29 23:04:37 UTC 2015


> On Sep 25, 2015, at 4:33 AM, Nils Eliasson <nils.eliasson at oracle.com> wrote:
> 
> Hi all,
> 
> Here is a new webrev including changes after feedback from Chris, Roland, Volker, Pavel and Igor.
> 
> http://cr.openjdk.java.net/~neliasso/8046155/webrev.03/ <http://cr.openjdk.java.net/~neliasso/8046155/webrev.03/>

I still don’t like the variable/method name “dirset”.  Please change it.

> 
> Major changes:
> - Moved the directives from ciEnv to Compile/Compilation/SharkCompiler.
> - Changed the lifetime management of directives and directives set since they no longer are tied to ciEnv
> - FIxed a bug that caused crash with LogCompilation
> - Make sure the VM doesn't start if the supplied directives are malformed
> - Readded CompilerDirectivesDCMDTest that has been lost during the patch split.
> 
> Know issues:
> - Won't build c1 only or shark only.
> - Have yet changed back the flags Roland noted I had changed scope on.
> 
> Best 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
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20150929/2e3e6a10/attachment.html>


More information about the hotspot-compiler-dev mailing list