[9] RFR(M): 8146629: Make phase->is_IterGVN() accessible from Node::Identity and Node::Value

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jan 7 22:51:44 UTC 2016

PhaseValues has additional data which we may access.
As Tobias said we may consider using additional field in PhaseGVN to check for IGVN instead of using virtual method 
is_IterGVN() and can_reshape parameter. It would be next step.


On 1/7/16 2:40 PM, Krystal Mok wrote:
> That's interesting. Out of curiosity, would adding a "bool can_reshape" argument to Identity() and Value() do the job,
> just like the way Ideal() does it?
> If so, what was the trade off that led to this change as opposed to adding an argument?
> Thanks,
> Kris
> On Thursday, January 7, 2016, Vladimir Kozlov <vladimir.kozlov at oracle.com <mailto:vladimir.kozlov at oracle.com>> wrote:
>     Perfect.
>     Thanks,
>     Vladimir
>     On 1/7/16 10:51 AM, Tobias Hartmann wrote:
>         Hi,
>         please review the following patch.
>         https://bugs.openjdk.java.net/browse/JDK-8146629
>         http://cr.openjdk.java.net/~thartmann/8146629/webrev.00/
>         Currently, there is no way to determine in Node::Identity() and Node::Value() if we were called from GVN or IGVN
>         but sometimes we would like to do optimizations based on this information (for example, see discussion in RFR
>         for JDK-8136469 [1]). I changed the arguments of Node::Identity() and Node::Value() from PhaseTransform* to
>         PhaseGVN*. Like this, we can simply call PhaseValues::is_IterGVN() from both methods.
>         Thanks,
>         Tobias
>         [1] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2016-January/020670.html

More information about the hotspot-compiler-dev mailing list