<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:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:tax="http://schemas.microsoft.com/sharepoint/taxonomy/soap/" xmlns:tns="http://schemas.microsoft.com/sharepoint/soap/recordsrepository/" xmlns:spsup="http://microsoft.com/webservices/SharePointPortalServer/UserProfileService" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<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:Wingdings;
        panose-1:5 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;}
@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:"Times New Roman","serif";}
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:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@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">We have that behaves similarly to yours in this regard it seems. Specifically, our target utilizes the HardwareLoop pass with CounterInReg true, and then treats
 loops augmented by this pass as software pipeline candidates. It seems PPC does this as well, but has CounterInReg false. Our loop body ends up looking like this (in mildly simplified pseudocode):<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">%body:<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">                %indvar = PHI(%init, %preheader, %dec, %body)<o:p></o:p></span></b></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"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">                %dec = subtract %indvar, count<o:p></o:p></span></b></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">                branch-compare (%dec > 0), %body<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">                branch %end<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">%end:<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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The instructions I’ve bolded cause problems in the pipeliner as you are well aware. They are the induction variable updates that shouldn’t be pipelined and
 will be re-inserted or updated post-scheduling. When I saw “ignoreForPipelining” I was excited that the problem was already solved, but alas!
</span><span style="font-size:11.0pt;font-family:Wingdings;color:#1F497D">J</span><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"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I’m in the process of trying to come up with a workaround pass before/after pipelining that temporarily hides these instructions inside the branch, but I’m
 always on the lookout for better alternatives.<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">Thanks for the response! I would appreciate anything that Hendrik could add to the discussion as well. If it’s just that the implementation isn’t robust enough
 to upstream, our team might be amenable to help out. I do, however, wonder if the implementation was used in a custom scheduler rather than the default SMS and expander. That would make generalizing quite a bit tougher.<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">JB<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>
<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""> James Molloy [mailto:jmolloy@google.com]
<br>
<b>Sent:</b> Thursday, September 3, 2020 2:07 PM<br>
<b>To:</b> Nagurne, James<br>
<b>Cc:</b> Jinsong Ji; llvm-dev@lists.llvm.org; Sander; Hendrik Greving<br>
<b>Subject:</b> Re: [EXTERNAL] RE: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Hi James,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Adding Hendrik, who has taken over ownership of the downstream code involved. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I can also add background about the rationale, of that helps? It was added to ignore induction variable update code (scalar code) that is rewritten when we unroll / peel the prolog epilog anyway. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Targets like Hexagon or PPC with dedicated loop control instructions for pipelined loops don't need this, but our target was simple RISC. It was for that reason that I felt the feature would be useful for other targets. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">James<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, 3 Sep 2020, 17:19 Nagurne, James, <<a href="mailto:j-nagurne@ti.com">j-nagurne@ti.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ah, I apologize for not seeing the meaning of your first email. I had not considered that he was
 working on an out-of-tree target that utilizes the ignore capability. You’ve made things very clear, thank you!</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Since he’s on the email thread now:</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">James, do you plan on upstreaming any portion of the ignore capability? If not, do you have any pointers
 for a target that may want to implement it? The one issue I see that might exist is that the scheduler wants a region begin and end as iterators, meaning contiguous instructions. It doesn’t really support the removal of instructions between those two points,
 so you’d have to synthesize a region, create a meta-iterator, or some other intrusive modification.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">JB</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><a name="m_-2366449629682116770__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></a><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><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""> Jinsong Ji [mailto:<a href="mailto:jji@us.ibm.com" target="_blank">jji@us.ibm.com</a>]
<br>
<b>Sent:</b> Thursday, September 3, 2020 10:03 AM<br>
<b>To:</b> Nagurne, James; <a href="mailto:jmolloy@google.com" target="_blank">jmolloy@google.com</a><br>
<b>Cc:</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>; Sander<br>
<b>Subject:</b> [EXTERNAL] RE: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p><span style="font-size:10.0pt">As I mentioned before, </span><br>
<span style="font-size:10.0pt">this API was introduced by James, mostly for his out-of-tree implementations,
</span><br>
<span style="font-size:10.0pt">the in tree implementation NEVER implement it.</span><br>
<br>
<span style="font-size:10.0pt">If it is causing confusion, I think we have two choices:</span><br>
<span style="font-size:10.0pt">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.</span><br>
<span style="font-size:10.0pt">2. Remove this confusing API in tree.</span><br>
<br>
<span style="font-size:10.0pt"><br>
Best,<br>
<br>
Jinsong Ji (</span><span lang="ZH-CN" style="font-size:10.0pt;font-family:SimSun;mso-fareast-language:ZH-CN">纪金松</span><span style="font-size:10.0pt">), PhD.<br>
<br>
XL/LLVM on Power Compiler Development <br>
E-mail: <a href="mailto:jji@us.ibm.com" target="_blank">jji@us.ibm.com</a></span><br>
<br>
<img border="0" width="16" height="16" id="m_-2366449629682116770_x005f_x0000_i1025" src="cid:image001.gif@01D681E2.61CD3A00" 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"><span style="font-size:10.0pt;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</span><br>
<br>
<span style="font-size:10.0pt;color:#5F5F5F">From: </span><span style="font-size:10.0pt">"Nagurne, James" <<a href="mailto:j-nagurne@ti.com" target="_blank">j-nagurne@ti.com</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">To: </span><span style="font-size:10.0pt">Jinsong Ji <<a href="mailto:jji@us.ibm.com" target="_blank">jji@us.ibm.com</a>>, Sander <<a href="mailto:sanderruben@gmail.com" target="_blank">sanderruben@gmail.com</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Cc: </span><span style="font-size:10.0pt">"<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Date: </span><span style="font-size:10.0pt">09/02/2020 01:43 PM</span><br>
<span style="font-size:10.0pt;color:#5F5F5F">Subject: </span><span style="font-size:10.0pt">RE: [EXTERNAL] Re: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</span><o:p></o:p></p>
<div>
<div class="MsoNormal">
<hr size="2" width="100%" noshade="" style="color:#8091A5" align="left">
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><br>
<br>
<br>
<span style="color:#1F497D">Sorry to bring this thread from 3 months ago back, but I’m running into this issue too.</span><br>
<span style="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.</span><br>
<br>
<span style="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.”</span><br>
<br>
<span style="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?</span><br>
<br>
<span style="color:#1F497D">J.B. Nagurne</span><br>
<span style="color:#1F497D">Code Generation</span><br>
<span style="color:#1F497D">Texas Instruments</span><br>
<br>
<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 [<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">mailto:llvm-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Jinsong Ji via llvm-dev<b><br>
Sent:</b> Tuesday, June 2, 2020 2:58 PM<b><br>
To:</b> Sander<b><br>
Cc:</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><b><br>
Subject:</b> [EXTERNAL] Re: [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.</span><o:p></o:p></p>
<p><span style="font-size:10.0pt">Hi Sander:</span><br>
<span style="font-size:10.0pt"><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.</span><br>
<span style="font-size:10.0pt"><br>
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" target="_blank">https://reviews.llvm.org/D67167</a><br>
<br>
<span style="font-size:10.0pt"><br>
<br>
Best,<br>
<br>
Jinsong Ji (</span><span lang="ZH-CN" style="font-size:10.0pt;font-family:SimSun;mso-fareast-language:ZH-CN">纪金松</span><span style="font-size:10.0pt">), PhD.<br>
<br>
XL/LLVM on Power Compiler Development <br>
E-mail: <a href="mailto:jji@us.ibm.com" target="_blank">jji@us.ibm.com</a></span><br>
<br>
<img border="0" width="16" height="16" id="m_-2366449629682116770_x005f_x0000_i1027" src="cid:image001.gif@01D681E2.61CD3A00" 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>
<span style="font-size:10.0pt;color:#5F5F5F"><br>
From: </span><span style="font-size:10.0pt">Sander via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><span style="color:#5F5F5F"><br>
To: </span><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><span style="color:#5F5F5F"><br>
Date: </span>06/02/2020 03:47 PM<span style="color:#5F5F5F"><br>
Subject: </span>[EXTERNAL] [llvm-dev] Machinepipeliner interface. shouldIgnoreForPipelining, actually not ignoring.<span style="color:#5F5F5F"><br>
Sent by: </span>"llvm-dev" <<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>></span><o:p></o:p></p>
<div>
<div class="MsoNormal">
<hr size="2" width="100%" noshade="" style="color:#A0A0A0" align="left">
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;margin-bottom:12.0pt"><br>
<br>
<br>
<span style="font-size:10.0pt"><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>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><u><span style="color:blue"><br>
</span></u></span><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank"><span style="font-size:10.0pt">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</span></a><span style="font-size:10.0pt">
<br>
</span><br>
<br>
<br>
<o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>