RFR: JDK-8213615: GC/C2 abstraction for escape analysis
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Nov 14 22:11:05 UTC 2018
On 11/14/18 12:59 PM, Roman Kennke wrote:
> Hi Vladimir,
>
>> G1 and ZGC code refactoring matches previous code.
>> add_to_congraph_unsafe_access() is also good.
>
> OK.
>
>> Why add_final_edges_unsafe_access() does not include 'if (opcode ==
>> Op_GetAndSetP' code? You broke sequence where (adr_type == NULL) should
>> be checked first.
>
> Hmm, right. The idea was that Sheanndoah would need to call this for its
> own set of CAS nodes, we'd handle the first part separately anyway, and
> would therefore not be needed in general path:
>
> if (opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
> opcode == Op_CompareAndExchangeN || opcode ==
> Op_CompareAndExchangeP) {
> add_local_var_and_edge(n, PointsToNode::NoEscape, adr, NULL);
> }
>
> However, since it's guarded by the if (opcode== ..) it doesn't hurt to
> leave it there. I reinstated the original sequence.
You forgot to remove this code from main switch after copying it to add_final_edges_unsafe_access().
>
>> Also fail check is wrong. Should be:
>>
>> if (add_final_edges_unsafe_access(n, opcode)) {
>> break;
>> }
>> ELSE_FAIL("Op_StoreP");
>
> Right. Fixed.
>
>> Why you moved record_for_optimizer() to .cpp file?
>
> This is because BarrierSetC2 impls would now include escape.hpp but not
> necessarily phaseX.hpp, or at least not necessarily phaseX.hpp before
> escape.hpp. And I did not want to drag this include into escape.hpp
> (which would be correct if the method is using a PhaseIGVN method).
> Instead, I moved the body into escape.cpp and we have the correct
> include there already.
Okay. Good to know.
Thanks,
Vladimir
>
> Updated webrevs:
> Incremental:
> http://cr.openjdk.java.net/~rkennke/JDK-8213615/webrev.02.diff/
> Full:
> http://cr.openjdk.java.net/~rkennke/JDK-8213615/webrev.02/
>
> Better?
>
> Thanks a lot for reviewing!
> Roman
>
>
>> Thanks,
>> Vladimir
>>
>> On 11/13/18 9:05 AM, Roman Kennke wrote:
>>> Sure no problem. Thank you!
>>>
>>> Roman
>>>
>>>
>>>> I have to review it in details. Give me some time.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 11/13/18 4:24 AM, Roman Kennke wrote:
>>>>> Thanks Roland for the review!
>>>>>
>>>>> Vladimir: do you want to take a deeper look too? Or can I consider your
>>>>> 'I like the proposal from JIT POV' as 'reviewed' ? ;-)
>>>>>
>>>>> Roman
>>>>>
>>>>>>> http://cr.openjdk.java.net/~rkennke/JDK-8213615/webrev.01/
>>>>>>
>>>>>> Looks ok to me.
>>>>>>
>>>>>> Roland.
>>>>>>
>>>>>
>>>
>
More information about the hotspot-compiler-dev
mailing list