RFR: 8267399: C2: java/text/Normalizer/ConformanceTest.java test failed with assertion [v2]

Vladimir Kozlov kvn at openjdk.java.net
Tue Jun 15 17:18:42 UTC 2021


On Tue, 15 Jun 2021 09:26:33 GMT, Roland Westrelin <roland at openjdk.org> wrote:

>> Thanks for the reviewing this.
>> 
>>> Second, why you used min_jint and max_jint instead of main_limit->_lo and main_limit->_hi?
>> 
>> Range check elimination changes the main loop's limit. For a loop going up, the new limit is less or equal to the initial limit. So it's less than main_limit->_hi. But it's not guaranteed to be greater or equal to main_limit->_lo. Say, main_limit is a constant, then main_limit->_lo = main_limit->_hi. The new limit can't be >= main_limit->_lo otherwise the new limit is main_limit->_lo = main_limit->_hi and the limit is unchanged.
>
>> First, need comment.
> 
> Comment added.

What are you saying is that low limit does not matter when stride > 0 and we can use min_jint instead of complex expression (if we want correct value). Is it right?

-------------

PR: https://git.openjdk.java.net/jdk/pull/4388


More information about the hotspot-compiler-dev mailing list