<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 28, 2016 at 11:54 AM, Krzysztof Parzyszek <span dir="ltr"><<a href="mailto:kparzysz@codeaurora.org" target="_blank">kparzysz@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 4/28/2016 1:17 PM, Rail Shafigulin wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
On Thu, Apr 28, 2016 at 6:13 AM, Krzysztof Parzyszek<br></span><span class="">
<<a href="mailto:kparzysz@codeaurora.org" target="_blank">kparzysz@codeaurora.org</a> <mailto:<a href="mailto:kparzysz@codeaurora.org" target="_blank">kparzysz@codeaurora.org</a>>> wrote:<br>
<br>
    There are uses of R0 all over the place, even though R0 is not<br>
    marked as live-in to any of the blocks that use it.  For example:<br>
<br>
For my architecture R0 is a physical register. It always has a value of 0.<br>
</span></blockquote>
<br>
Ah, ok.  I'm guessing it's already marked as "reserved", right?<span class=""><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    IIRC, at some point the register pressure tracker assumed that a use<br>
    of a physical register is always a kill, thus it would always<br>
    decrease register pressure on the class that the register belonged to.<br>
<br>
Am I correct assuming that kill means get rid of the register?<br>
</blockquote>
<br></span>
Kill is the last use of the register after its most recent definition. After this point the register is "dead", i.e. no longer used.<span class=""><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Does it mean that I have to make changes to the core code (register<br>
pressure tracker) or I can get away with changes to my target? Obviously<br>
the latter is preferred.<br>
</blockquote>
<br></span>
If R0 is reserved, you should be fine without any changes.  In such case, I don't really know what the problem is.  I still suspect that the R0 is not handled right somewhere, but I have no idea where exactly.</blockquote><div>Register R0 is indeed reserved. Would you have any suggestions on where to look for the problem? I'd appreciate any input on this.</div><div> <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
    Since you are using llvm 3.5, that may still be the case for you.<br>
    I'm not sure whether this is still necessary in ToT.<br>
<br>
Am I correct assuming that by the "case" you mean kill of the physical<br>
register? I'm not familiar with ToT abbreviation? What does it mean?<br>
</blockquote>
<br></span>
ToT = tip of the tree, the latest source tree of LLVM/clang.<div class="HOEnZb"><div class="h5"><br>
<br>
-Krzysztof<br>
<br>
-- <br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Rail Shafigulin<br></div>Software Engineer <br>Esencia Technologies<br></div></div></div></div>
</div></div>