RFR(S): 8238723: yank_alloc_node must remove membar

Nils Eliasson nils.eliasson at oracle.com
Tue Feb 18 17:16:20 UTC 2020


You found the answer I was looking for.

So the addPs should die when I eliminate the InitalizeNode, and the I 
remove the membar, and then things should be ok.

Agree?

// Nils


On 2020-02-18 14:35, Vladimir Ivanov wrote:
>
>> What are the cases when AddPs on raw oop are present? Is it safe to 
>> remove Allocate node in such cases?
>
> I found the answer: AddPs correspond to initializing stores captured 
> by Initialize node. So, it should be fine to remove them the way you do.
>
> But now I'm curious whether elimination order (Initialize vs AddPs) 
> matters or not. PhaseMacroExpand::process_users_of_allocation() has 
> the following comment [1]:
>
>     // First disconnect stores captured by Initialize node.
>     // If Initialize node is eliminated first in the following code,
>     // it will kill such stores and DUIterator_Last will assert.
>
> Best regards,
> Vladimir Ivanov
>
> [1] 
> http://hg.openjdk.java.net/jdk/jdk/file/tip/src/hotspot/share/opto/macro.cpp#l1028


More information about the hotspot-compiler-dev mailing list