<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Helvetica Neue";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:SimSun;
        mso-fareast-language:ZH-CN;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:SimSun;
        mso-fareast-language:ZH-CN;}
tt
        {mso-style-priority:99;
        font-family:SimSun;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Sorry to bring this thread from 3 months ago back, but I¡¯m running into this issue too.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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.¡±<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";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?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">J.B. Nagurne<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Code Generation<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Texas Instruments<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>Jinsong Ji via llvm-dev<br>
<b>Sent:</b> Tuesday, June 2, 2020 2:58 PM<br>
<b>To:</b> Sander<br>
<b>Cc:</b> llvm-dev@lists.llvm.org<br>
<b>Subject:</b> [EXTERNAL] Re: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><span style="font-size:10.0pt">Hi Sander:</span><br>
<br>
<span style="font-size:10.0pt">It may be confusing, but it is not a bug. </span><br>
<span style="font-size:10.0pt">And you are right, if you are using the in-tree machinepipeliner, it won't have any effects,</span><br>
<span style="font-size:10.0pt">because there is NO In tree reference of this API at all.</span><br>
<br>
<span style="font-size:10.0pt">You can see the comments when </span><span style="font-family:"Helvetica Neue","serif"">James</span><span style="font-size:10.0pt"> introduced this API in
</span><a href="https://reviews.llvm.org/D67167">https://reviews.llvm.org/D67167</a><br>
<br>
<br>
<span style="font-size:10.0pt"><br>
Best,<br>
<br>
Jinsong Ji (<span lang="ZH-CN">¼Í½ğËÉ</span>), PhD.<br>
<br>
XL/LLVM on Power Compiler Development <br>
E-mail: jji@us.ibm.com</span><br>
<br>
<img border="0" width="16" height="16" id="_x0000_i1025" src="cid:image001.gif@01D68125.878CC110" 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"><span style="font-size:10.0pt;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</span><br>
<br>
<span style="font-size:10.0pt;color:#5F5F5F">From: </span><span style="font-size:10.0pt">Sander via llvm-dev <llvm-dev@lists.llvm.org></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">To: </span><span style="font-size:10.0pt">llvm-dev@lists.llvm.org</span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Date: </span><span style="font-size:10.0pt">06/02/2020 03:47 PM</span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Subject: </span><span style="font-size:10.0pt">[EXTERNAL] [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Sent by: </span><span style="font-size:10.0pt">"llvm-dev" <llvm-dev-bounces@lists.llvm.org></span><o:p></o:p></p>
<div class="MsoNormal">
<hr size="2" width="100%" noshade="" style="color:#8091A5" align="left">
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<br>
<tt><span style="font-size:10.0pt">Hi all,</span></tt><span style="font-size:10.0pt"><br>
<br>
<tt>I think there is a mistake in the machinepipeliner interface. In the </tt><br>
<tt>TargetInstrInfo.h in the class PipelinerLoopInfo there is a function </tt><br>
<tt>"bool shouldIgnoreForPipelining(const MachineInstr *MI)". The </tt><br>
<tt>description says that if this function returns true for a given </tt><br>
<tt>MachineInstr it will not be pipelined.</tt><br>
<br>
<tt>However in reality it is not ignored and is being considered for </tt><br>
<tt>pipelining. I implemented this function in my own backend, and put an </tt><br>
<tt>instruction there that I want to be ignored, but still this instruction </tt>
<br>
<tt>end up trying to be pipelined. I implemented the same way as in </tt><br>
<tt>PPCInstrInfo.cpp, and I think it has the same bug. Is this a bug, or am </tt>
<br>
<tt>I forgetting something?</tt><br>
<br>
<tt>Kind regards,</tt><br>
<br>
<tt>Sander Ruben</tt><br>
<br>
<tt>_______________________________________________</tt><br>
<tt>LLVM Developers mailing list</tt><br>
<tt>llvm-dev@lists.llvm.org</tt><br>
<tt><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a> </tt><br>
<br>
</span><br>
<br>
<o:p></o:p></p>
</div>
</body>
</html>