RFR 8178150: Regression in logic for handling inference stuck constraints

Vicente Romero vicente.romero at oracle.com
Wed Oct 18 23:57:27 UTC 2017


Hi Maurizio,

I'm not sure about the correctness or the objective of the closure() 
method. The termination condition seems to be: stop as soon as you find 
a cycle in the graph, at least this is my reading. But for some graphs 
this could imply finding a subset of the closure not the whole of it. It 
seems to me like implementing a graph traversal method should be what it 
is wanted here. Unless there is something I'm missing.

Also in the same method the javadoc could have stall comments as it says 
that a kind of dependencies is given but there is no argument passed to 
the method.

Thanks,
Vicente

On 10/18/2017 04:15 PM, Maurizio Cimadamore wrote:
> Hi,
> this issue has already been discussed in [1].
>
> The issue has to do with the fact that logic for picking a deferred 
> node to unstick ignores the can-influence relationship (aka inference 
> graph dependencies).
>
> The implemented code is not optimized (almost deliberately); I wanted 
> the code to follow the spec more or less cleanly. While I'm open to 
> small improvements, I would please ask to focus on correctness for the 
> time being since (i) this code is not an hot execution path and (ii) 
> other performance improvements in this area will follow, see [2].
>
> http://cr.openjdk.java.net/~mcimadamore/8178150/
>
> [1] - 
> http://mail.openjdk.java.net/pipermail/compiler-dev/2017-October/011192.html
> [2] - 
> http://mail.openjdk.java.net/pipermail/compiler-dev/2017-October/011126.html
>
> Cheers
> Maurizio
>



More information about the compiler-dev mailing list