RFR (XXL): JEP 243: Java-Level JVM Compiler Interface

Christian Thalinger christian.thalinger at oracle.com
Fri Oct 2 22:43:56 UTC 2015


> On Oct 2, 2015, at 12:31 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
> 
> On Oct 2, 2015, at 5:04 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>> 
>>> On Oct 2, 2015, at 10:15 AM, Kim Barrett <kim.barrett at oracle.com> wrote:
>>> 
>>> On Oct 1, 2015, at 7:46 PM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>>>> 
>>>>> On Sep 30, 2015, at 3:19 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>>>>> src/share/vm/gc/shared/cardTableRS.cpp  
>>>>> Changes in CardTableRS::verify_space function.
>>>>> 
>>>>> These don't appear to be specifically related to JVMCI.  I'm not sure
>>>>> whether this is someone's debugging code that was left in, or if it
>>>>> might be viewed as an improvement.  Either way, I'd prefer that it be
>>>>> a separate change that gets reviewed by folks interested in GC
>>>>> changes, rather than being buried in the JVMCI change set.
>>>> 
>>>> Removed.
>>> 
>>> Not completely.  […]
>>> 
>>> [Note that the removal of the unnecessary (HeapWord*) cast is in there.]
>> 
>> But you want me to keep that, right?
> 
> Yes - just highlighting that this change to keep was intermixed with the stuff to remove.
> Looks like you did what I wanted, even if I didn’t say it clearly.
> 
>>> @@ -344,19 +344,26 @@
>>>    assert(jp >= _begin && jp < _end,
>>>           err_msg("Error: jp " PTR_FORMAT " should be within "
>>>                   "[_begin, _end) = [" PTR_FORMAT "," PTR_FORMAT ")",
>>>                   p2i(jp), p2i(_begin), p2i(_end)));
>>>    oop obj = oopDesc::load_decode_heap_oop(p);
>>> -    guarantee(obj == NULL || (HeapWord*)obj >= _boundary,
>>> -              err_msg("pointer " PTR_FORMAT " at " PTR_FORMAT " on "
>>> +    if (!(obj == NULL || (HeapWord*)obj >= _boundary)) {
>>> +      tty->print_cr("pointer " PTR_FORMAT " at " PTR_FORMAT " on "
>>>                      "clean card crosses boundary" PTR_FORMAT,
>>> -                      p2i((HeapWord*)obj), p2i(jp), p2i(_boundary)));
>>> +                    p2i(obj), p2i(jp), p2i(_boundary));
>>> +#ifndef PRODUCT
>>> +      obj->print();
>>> +#endif
>>> +      had_error = true;
>>> +    }
>>>  }
>>> 
>>> public:
>>> +  bool had_error;
>>> +  
>>>  VerifyCleanCardClosure(HeapWord* b, HeapWord* begin, HeapWord* end) :
>>> -    _boundary(b), _begin(begin), _end(end) {
>>> +    _boundary(b), _begin(begin), _end(end), had_error(false) {
>>>    assert(b <= begin,
>>>           err_msg("Error: boundary " PTR_FORMAT " should be at or below begin " PTR_FORMAT,
>>>                   p2i(b), p2i(begin)));
>>>    assert(begin <= end,
>>>           err_msg("Error: begin " PTR_FORMAT " should be strictly below end " PTR_FORMAT,
>> 
>> Sorry, it wasn’t obvious to me that you are also talking about this code.  Removed:
>> 
>> http://hg.openjdk.java.net/graal/graal-jvmci-9/hotspot/rev/2d707abdbfba
> 
> Thanks.  Sorry for being unclear; when I said “changes to verify_space” I was including the
> related changes to the helper closure object.
> 
> And that addresses the last of my comments.

Thanks.


More information about the hotspot-dev mailing list