RFR 8178150: Regression in logic for handling inference stuck constraints
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Oct 19 08:38:53 UTC 2017
I think you are right - this method was there when I first wrote the
patch but then got removed. I resurrected it for the purpose of this
patch, but it seems like it's not doing what we need.
Maurizio
On 19/10/17 00:57, Vicente Romero wrote:
> 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