<div dir="ltr">Looks like you got it.<div><br></div><div>Thanks</div><div>Russ</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 24 Aug 2020 at 10:14, Sam Parker <<a href="mailto:Sam.Parker@arm.com">Sam.Parker@arm.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hi Russ,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I'm looking at it, but I'm a bit stuck without a Windows machine... Do you have any suggestions?</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Thanks,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Sam</div>
<div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div id="gmail-m_2781164060930804005Signature">
<div>
<div id="gmail-m_2781164060930804005divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:Calibri,Arial,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p style="margin-top:0px;margin-bottom:0px"></p>
<p style="margin-top:0px;margin-bottom:0px;font-family:"Times New Roman""><span style="font-family:Calibri,Helvetica,sans-serif">Sam Parker</span></p>
<span style="font-family:Calibri,Helvetica,sans-serif"></span>
<p style="margin-top:0px;margin-bottom:0px;font-family:"Times New Roman""><span style="font-family:Calibri,Helvetica,sans-serif">Compilation Tools Engineer | Arm</span></p>
<span style="font-family:Calibri,Helvetica,sans-serif"></span>
<p style="margin-top:0px;margin-bottom:0px;font-family:"Times New Roman""><span style="font-family:Calibri,Helvetica,sans-serif">. . . . . . . . . . . . . . . . . . . . . . . . . . .</span></p>
<span style="font-family:Calibri,Helvetica,sans-serif"></span>
<p style="margin-top:0px;margin-bottom:0px;font-family:"Times New Roman""><span style="font-family:Calibri,Helvetica,sans-serif">Arm.com</span></p>
<p style="margin-top:0px;margin-bottom:0px"></p>
</div>
</div>
</div>
</div>
<div id="gmail-m_2781164060930804005appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_2781164060930804005divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Russell Gallop <<a href="mailto:russell.gallop@gmail.com" target="_blank">russell.gallop@gmail.com</a>><br>
<b>Sent:</b> 24 August 2020 10:00<br>
<b>To:</b> Sam Parker <<a href="mailto:Sam.Parker@arm.com" target="_blank">Sam.Parker@arm.com</a>>; Sam Parker <<a href="mailto:llvmlistbot@llvm.org" target="_blank">llvmlistbot@llvm.org</a>><br>
<b>Cc:</b> LLVM Commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>><br>
<b>Subject:</b> Re: [llvm] b999400 - [SCEV] Add operand methods to Cast and UDiv</font>
<div> </div>
</div>
<div>
<div dir="ltr">Hi Sam,
<div><br>
</div>
<div>It looks like this is continuing to have build problems on Windows, even after "e286c600e10d - [SCEV] Attempt to fix windows buildbots":</div>
<div><a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/34251/steps/build-unified-tree/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/34251/steps/build-unified-tree/logs/stdio</a><br>
</div>
<div><br>
</div>
<div>Are you looking at this failure?</div>
<div><br>
</div>
<div>Thanks</div>
<div>Russ</div>
</div>
<br>
<div>
<div dir="ltr">On Mon, 24 Aug 2020 at 06:57, Sam Parker via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
</div>
<blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Author: Sam Parker<br>
Date: 2020-08-24T06:57:07+01:00<br>
New Revision: b999400a4fb645cab6d8abcb1ce9146775f69c64<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64" rel="noreferrer" target="_blank">
https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64.diff" rel="noreferrer" target="_blank">
https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64.diff</a><br>
<br>
LOG: [SCEV] Add operand methods to Cast and UDiv<br>
<br>
Add methods to access operands in a similar manner to NAryExpr.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D86083" rel="noreferrer" target="_blank">
https://reviews.llvm.org/D86083</a><br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
    llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff  --git a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h<br>
index 0076e02ae1bf..10fefa0272b1 100644<br>
--- a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h<br>
+++ b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h<br>
@@ -82,6 +82,16 @@ class Type;<br>
<br>
   public:<br>
     const SCEV *getOperand() const { return Op; }<br>
+    const SCEV *getOperand(unsigned i) const {<br>
+      assert(i == 0 && "Operand index out of range!");<br>
+      return Op;<br>
+    }<br>
+    using op_iterator = const SCEV *const *;<br>
+    using op_range = iterator_range<op_iterator>;<br>
+    op_range operands() const {<br>
+      return make_range(&Op, &Op + 1);<br>
+    }<br>
+    size_t getNumOperands() const { return 1; }<br>
     Type *getType() const { return Ty; }<br>
<br>
     /// Methods for support type inquiry through isa, cast, and dyn_cast:<br>
@@ -263,16 +273,28 @@ class Type;<br>
   class SCEVUDivExpr : public SCEV {<br>
     friend class ScalarEvolution;<br>
<br>
-    const SCEV *LHS;<br>
-    const SCEV *RHS;<br>
+    std::array<const SCEV*, 2> Operands;<br>
<br>
     SCEVUDivExpr(const FoldingSetNodeIDRef ID, const SCEV *lhs, const SCEV *rhs)<br>
-        : SCEV(ID, scUDivExpr, computeExpressionSize({lhs, rhs})), LHS(lhs),<br>
-          RHS(rhs) {}<br>
+        : SCEV(ID, scUDivExpr, computeExpressionSize({lhs, rhs})) {<br>
+        Operands[0] = lhs;<br>
+        Operands[1] = rhs;<br>
+      }<br>
<br>
   public:<br>
-    const SCEV *getLHS() const { return LHS; }<br>
-    const SCEV *getRHS() const { return RHS; }<br>
+    const SCEV *getLHS() const { return Operands[0]; }<br>
+    const SCEV *getRHS() const { return Operands[1]; }<br>
+    size_t getNumOperands() const { return 2; }<br>
+    const SCEV *getOperand(unsigned i) const {<br>
+      assert((i == 0 || i == 1) && "Operand index out of range!");<br>
+      return i == 0 ? getLHS() : getRHS();<br>
+    }<br>
+<br>
+    using op_iterator = const SCEV *const *;<br>
+    using op_range = iterator_range<op_iterator>;<br>
+    op_range operands() const {<br>
+      return make_range(Operands.begin(), Operands.end());<br>
+    }<br>
<br>
     Type *getType() const {<br>
       // In most cases the types of LHS and RHS will be the same, but in some<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote>
</div>
</div>
</div>

</blockquote></div>