<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Right, I forgot how it works. Sorry for the confusion. I think there is no way to explicitly describe a register kill in C1. I guess the only option is to just avoid clobbering opr1. So may be we should make use of tmp1 for lir_cmp to save/restore opr1? Again, tmp1 would have to be allocated only for this particular case.<div class=""> <br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">igor<br class=""><br class=""><br class=""></span>

</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On Oct 1, 2018, at 7:15 AM, Dmitry Cherepanov <<a href="mailto:dcherepanov@azul.com" class="">dcherepanov@azul.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="">
<div style="margin: 0px; line-height: normal;" class="">Hi Igor,</div>
<div style="margin: 0px; line-height: normal;" class=""><br class="">
</div>
<div style="margin: 0px; line-height: normal;" class="">Thanks for the suggestions. I tried to make the opr1 a temporary</div>
<div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class="">
</div>
<div style="margin: 0px; line-height: normal;" class=""><a href="http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.02/" class="">http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.02/</a></div>
<div style="margin: 0px; line-height: normal; min-height: 14px;" class=""><br class="">
</div>
<div style="margin: 0px; line-height: normal;" class="">but the generated code still has the problem. Looking into the log with -XX:TraceLinearScanLevel=4 (<a href="http://cr.openjdk.java.net/~dcherepanov/8211100/TraceLinearScanLevel.02.log" class="">http://cr.openjdk.java.net/~dcherepanov/8211100/TraceLinearScanLevel.02.log</a>)
 seems like the reason for this is that the opr1 (virtual register R165 in the log) is also an input operand and its range becomes wider and the shorter ranges (corresponding to the opr1 marked as temp) are merged to the single range. Can the input operand
 be temporary at the same time?</div>
</div>
<div class=""><br class="">
</div>
<div class="">Dmitry</div>
<br class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On Sep 27, 2018, at 2:18 AM, Igor Veresov <<a href="mailto:igor.veresov@oracle.com" class="">igor.veresov@oracle.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div class=""><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal; border-spacing: 0px;">Edit: It may be
 more consistent to check for is_double_cpu() instead of T_LONG. Although that’s semantically equivalent.</span></div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Sep 26, 2018, at 9:35 AM, Igor Veresov <<a href="mailto:igor.veresov@oracle.com" class="">igor.veresov@oracle.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div class="">It doesn’t seem to me like the proper way to fix it. The problem is that the cmp is destroying opr1 without telling the register allocator about it.</div>
<div class=""><br class="">
</div>
<div class="">One possible solution would be to make opr1 also a temp (see LIR_OpVisitState::visit(LIR_Op* op) in c1_LIR.cpp), only for x86 32bit and only if the operand type is T_LONG. </div>
<div class="">Another solution is to maintain a temporary register for lir_cmp and use it to save/restore opr1 when emitting the code in LIR_Assembler::comp_op(). Again, the temporary register has to be there only for x86 32bit and T_LONG.</div>
<div class=""><br class="">
</div>
<div class=""><span style="orphans: 2; text-align: -webkit-auto; widows: 2; -webkit-text-decorations-in-effect: none;" class="">igor</span></div>
<div class=""><span class="Apple-style-span" style="border-collapse: separate; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal; border-spacing: 0px; -webkit-text-decorations-in-effect: none;"><br class="">
</span></div>
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On Sep 26, 2018, at 1:29 AM, Tobias Hartmann <<a href="mailto:tobias.hartmann@oracle.com" class="">tobias.hartmann@oracle.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Hi
 Dmitry,</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">this
 looks good to me but Igor (who implemented 8201447) should have a look as well.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Best
 regards,</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Tobias</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On
 26.09.2018 09:04, Dmitry Cherepanov wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
<blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
Hi Tobias,<br class="">
<br class="">
Thanks for the review, updated patch avoids the additional move on x86_64 and includes the<br class="">
regression test.<br class="">
<br class="">
<a href="http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.01/" class="">http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.01/</a><br class="">
<<a href="http://cr.openjdk.java.net/%7Edcherepanov/8211100/webrev.01/" class="">http://cr.openjdk.java.net/%7Edcherepanov/8211100/webrev.01/</a>><br class="">
<br class="">
Dmitry<br class="">
<br class="">
<blockquote type="cite" class="">On Sep 25, 2018, at 6:40 PM, Tobias Hartmann <<a href="mailto:tobias.hartmann@oracle.com" class="">tobias.hartmann@oracle.com</a><br class="">
<<a href="mailto:tobias.hartmann@oracle.com" class="">mailto:tobias.hartmann@oracle.com</a>>> wrote:<br class="">
<br class="">
Hi Dmitry,<br class="">
<br class="">
Shouldn't this at least be guarded by an #ifndef _LP64 to avoid the additional move on x86_64?<br class="">
<br class="">
Could you please add the regression test to the webrev? Or did this reproduce with other tests?<br class="">
<br class="">
Thanks,<br class="">
Tobias<br class="">
<br class="">
On 25.09.2018 16:00, Dmitry Cherepanov wrote:<br class="">
<blockquote type="cite" class="">Hello,<br class="">
<br class="">
Please review a patch that resolves issue in x86 32bit builds. It slightly adjusts the fix for<br class="">
JDK-8201447 (C1 does backedge profiling incorrectly) by creating a copy of the left operand and<br class="">
using it for incrementing backedge counter.<br class="">
<br class="">
JBS issue:<span class="Apple-converted-space"> </span><a href="https://bugs.openjdk.java.net/browse/JDK-8211100" class="">https://bugs.openjdk.java.net/browse/JDK-8211100</a><br class="">
webrev:<span class="Apple-converted-space"> </span><a href="http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.00/" class="">http://cr.openjdk.java.net/~dcherepanov/8211100/webrev.00/</a><br class="">
<<a href="http://cr.openjdk.java.net/%7Edcherepanov/8211100/webrev.00/" class="">http://cr.openjdk.java.net/%7Edcherepanov/8211100/webrev.00/</a>><br class="">
<br class="">
Thanks,<br class="">
<br class="">
Dmitry</blockquote>
</blockquote>
</blockquote>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>

</div></blockquote></div><br class=""></div></body></html>