RFR (S): 8140343: SEGV in DirectivesStack::getMatchingDirective

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Oct 28 15:19:30 UTC 2015

I share Chris's concern - is _c1_store is always good choice and always 
defined. We still can have Server VM without C1 (PPC64). Or Zero. It 
should be taking into account.

If _c1_store is always present in all VM variants - it should be 
explained in comment.


On 10/28/15 5:15 PM, Nils Eliasson wrote:
> Still open for review.
> Regards,
> Nils
> On 2015-10-24 10:49, Nils Eliasson wrote:
>> On 2015-10-23 22:39, Christian Thalinger wrote:
>>>> On Oct 22, 2015, at 11:03 PM, Nils Eliasson
>>>> <nils.eliasson at oracle.com> wrote:
>>>> Hi all,
>>>> This fixes a bug when using a compiler that doesn't have compiler
>>>> directives. This is a temporary fix using the default directive for c1.
>>> What are the default directives for C1 and C2?  This fix is for JVMCI
>>> compilers and JVMCI compilers can only replace C2 in a tiered
>>> configuration.  Depending on what they are, wouldn’t it make more
>>> sense to use C2’s default directives?
>> The default directive is a directive that is always installed, always
>> enabled and contains all the default values from vmflags and compile
>> commands. This is the directive all compilations are using if no
>> additional directives are installed.
>>>> In the future permanent fix all compilers will have directives by
>>>> default.
>>> How would that look like?
>> Long story. It is an internal implementation detail to the structure
>> of compiler directives. Right now there is a bit of an overhead adding
>> a new compiler, even if only a single flag is used. The idea is to
>> have all directives contain all flags for all compilers - it might
>> sound expensive but will actually be more efficient. The most common
>> use case is only having the default directive, and in this case the
>> common flags wouldn't have to be duplicated for each compiler. The
>> profit in the JVMCI case is that all the common flags are valid and
>> usable without any workaround. The improvement is straightforward and
>> wont affect any use site but is big enough not to be the fix of this bug.
>> //Nils
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8140343
>>>> webrev: http://cr.openjdk.java.net/~neliasso/8140343/webrev.01/
>>>> Please review,
>>>> Nils

More information about the hotspot-compiler-dev mailing list