<html><head></head><body>Ah sorry, I see the test.<br>
<br>
Uwe<br><br><div class="gmail_quote">Am January 26, 2018 10:50:11 PM UTC schrieb Uwe Schindler <uschindler@apache.org>:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi Roland,<br>
<br>
Many thanks. Did you figure out which code part in Lucene or ICU4J caused this?<br>
<br>
I don't see a test case in the patch.<br>
<br>
Uwe<br><br><div class="gmail_quote">Am January 26, 2018 10:21:17 PM UTC schrieb Roland Westrelin <rwestrel@redhat.com>:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail"><br><a href="http://cr.openjdk.java.net/~roland/8196296/webrev.00/">http://cr.openjdk.java.net/~roland/8196296/webrev.00/</a><br><br>C2 attempts to merge 2 back to back ifs with the same condition:<br><br>if (condition) {<br><br>} else {<br><br>}<br><br>if (condition) {<br><br>but the second if is a counted loop end test. This causes the counted<br>loop to not keep a canonical shape. With debug builds, loop strip mining<br>verification code then causes the test to crash. With product builds,<br>the logic that finalizes the outer strip mined loop bails out but leaves<br>the outer loop. The test of the outer loop is turned into an If with a<br>constant input that's not optimized out. In the reported failure,<br>Matcher code then breaks because the If has a non Cmp input. I fixed<br>the logic in OuterStripMinedLoopNode::adjust_strip_mined_loop() so that<br>when it bails out, it causes the outer loop to go away and prevent 2<br>back to back ifs to merge if the second one is a counted loop end.<br><br>Roland.<br></pre></blockquote></div></blockquote></div></body></html>