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

Nils Eliasson nils.eliasson at oracle.com
Wed Oct 28 16:28:22 UTC 2015


And the webrev: http://cr.openjdk.java.net/~neliasso/8140343/webrev.04/

Regards,
Nils

On 2015-10-28 17:12, Nils Eliasson wrote:
> Hi Vladimir,
>
> The C1 store will always be an ok choice. Even if C1 is unavailable 
> the c1 store will be populated with the common flags (Enable, Exclude, 
> Print, Break, Log etc.).
>
> I will update the comment to reflect that.
>
> Thanks,
> Nils
>
>
> On 2015-10-28 16:19, Vladimir Kozlov wrote:
>> 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.
>>
>> Thanks,
>> Vladimir
>>
>> 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