<html><body><p><font size="2">As I mentioned before, </font><br><font size="2">this API was introduced by James, mostly for his out-of-tree implementations, </font><br><font size="2">the in tree implementation NEVER implement it.</font><br><br><font size="2">If it is causing confusion, I think we have two choices:</font><br><font size="2">1. See whether James would like to upstream part of his code? Or any other target that would like to use this can post a patch to use it.</font><br><font size="2">2. Remove this confusing API in tree.</font><br><br><font size="2"><br>Best,<br><br>Jinsong Ji (¼Í½ðËÉ), PhD.<br><br>XL/LLVM on Power Compiler Development <br>E-mail: jji@us.ibm.com</font><br><br><img width="16" height="16" src="cid:1__=8FBB0F4BDFC1A0CD8f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for "Nagurne, James" ---09/02/2020 01:43:29 PM---Sorry to bring this thread from 3 months ago back, but I"><font size="2" color="#424282">"Nagurne, James" ---09/02/2020 01:43:29 PM---Sorry to bring this thread from 3 months ago back, but I¡¯m running into this issue too. I do see tha</font><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">"Nagurne, James" <j-nagurne@ti.com></font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">Jinsong Ji <jji@us.ibm.com>, Sander <sanderruben@gmail.com></font><br><font size="2" color="#5F5F5F">Cc:        </font><font size="2">"llvm-dev@lists.llvm.org" <llvm-dev@lists.llvm.org></font><br><font size="2" color="#5F5F5F">Date:        </font><font size="2">09/02/2020 01:43 PM</font><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">RE: [EXTERNAL] Re: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br><font color="#1F497D">Sorry to bring this thread from 3 months ago back, but I¡¯m running into this issue too.</font><br><font color="#1F497D">I do see that shouldIgnore is not called in the MachinePipeliner, however, James¡¯ comment doesn¡¯t really resolve the issue or make the story any clearer.</font><br><font color="#1F497D"> </font><br><font color="#1F497D">My summary of the comment is: ¡°Hexagon and PPC9 do not need to ignore any instructions. However, in the case that you do, such as when the indvar update is explicit, this function is provided to allow the target to strip those instructions from the pipelined kernel.¡±</font><br><font color="#1F497D"> </font><br><font color="#1F497D">However, the reality is that the implementation seems incomplete and there¡¯s no instructions on how to achieve the desired result. Is it left as an exercise to the reader/implementer? Is there something I¡¯m missing?</font><br><font color="#1F497D"> </font><br><font color="#1F497D">J.B. Nagurne</font><br><font color="#1F497D">Code Generation</font><br><font color="#1F497D">Texas Instruments</font><br><a name="_MailEndCompose"></a><font color="#1F497D"> </font><br><b><font size="2" face="Tahoma">From:</font></b><font size="2" face="Tahoma"> llvm-dev [</font><font size="2" face="Tahoma"><a href="mailto:llvm-dev-bounces@lists.llvm.org">mailto:llvm-dev-bounces@lists.llvm.org</a></font><font size="2" face="Tahoma">] </font><b><font size="2" face="Tahoma">On Behalf Of </font></b><font size="2" face="Tahoma">Jinsong Ji via llvm-dev</font><b><font size="2" face="Tahoma"><br>Sent:</font></b><font size="2" face="Tahoma"> Tuesday, June 2, 2020 2:58 PM</font><b><font size="2" face="Tahoma"><br>To:</font></b><font size="2" face="Tahoma"> Sander</font><b><font size="2" face="Tahoma"><br>Cc:</font></b><font size="2" face="Tahoma"> llvm-dev@lists.llvm.org</font><b><font size="2" face="Tahoma"><br>Subject:</font></b><font size="2" face="Tahoma"> [EXTERNAL] Re: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</font><br> 
<p><font size="2">Hi Sander:</font><br><font size="2"><br>It may be confusing, but it is not a bug. <br>And you are right, if you are using the in-tree machinepipeliner, it won't have any effects,<br>because there is NO In tree reference of this API at all.</font><br><font size="2"><br>You can see the comments when </font><font face="Helvetica Neue">James</font><font size="2"> introduced this API in </font><a href="https://reviews.llvm.org/D67167"><u><font color="#0000FF">https://reviews.llvm.org/D67167</font></u></a><br><br><font size="2"><br><br>Best,<br><br>Jinsong Ji (¼Í½ðËÉ), PhD.<br><br>XL/LLVM on Power Compiler Development <br>E-mail: jji@us.ibm.com</font><br><br><img src="cid:1__=8FBB0F4BDFC1A0CD8f9e8a93df938690918c8FB@" width="16" height="16" alt="Inactive hide details for Sander via llvm-dev ---06/02/2020 03:47:53 PM---Hi all, I think there is a mistake in the machinepipe"><font size="2" color="#424282">Sander via llvm-dev ---06/02/2020 03:47:53 PM---Hi all, I think there is a mistake in the machinepipeliner interface. In the</font><br><font size="2" color="#5F5F5F"><br>From: </font><font size="2">Sander via llvm-dev <llvm-dev@lists.llvm.org></font><font size="2" color="#5F5F5F"><br>To: </font><font size="2">llvm-dev@lists.llvm.org</font><font size="2" color="#5F5F5F"><br>Date: </font><font size="2">06/02/2020 03:47 PM</font><font size="2" color="#5F5F5F"><br>Subject: </font><font size="2">[EXTERNAL] [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</font><font size="2" color="#5F5F5F"><br>Sent by: </font><font size="2">"llvm-dev" <llvm-dev-bounces@lists.llvm.org></font><br><hr width="100%" size="2" align="left" noshade><br><br><br><font size="2"><br>Hi all,<br><br>I think there is a mistake in the machinepipeliner interface. In the <br>TargetInstrInfo.h in the class PipelinerLoopInfo there is a function <br>"bool shouldIgnoreForPipelining(const MachineInstr *MI)". The <br>description says that if this function returns true for a given <br>MachineInstr it will not be pipelined.<br><br>However in reality it is not ignored and is being considered for <br>pipelining. I implemented this function in my own backend, and put an <br>instruction there that I want to be ignored, but still this instruction <br>end up trying to be pipelined. I implemented the same way as in <br>PPCInstrInfo.cpp, and I think it has the same bug. Is this a bug, or am <br>I forgetting something?<br><br>Kind regards,<br><br>Sander Ruben<br><br>_______________________________________________<br>LLVM Developers mailing list<br>llvm-dev@lists.llvm.org</font><u><font size="2" color="#0000FF"><br></font></u><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"><u><font size="2" color="#0000FF">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</font></u></a><font size="2"> <br></font><br><br><br><br><BR>
</body></html>