<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Feb 6, 2017 at 11:22 AM Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">This adds a unittest that *with optimizations* takes over 20 seconds to run. That seems excessive.</div></blockquote><div><br></div><div>Specifically...</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Mon, Feb 6, 2017 at 4:49 AM Daniil Fukalov via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+static cl::opt<unsigned><br class="gmail_msg">
+    MaxAddExprDepth("scalar-evolution-max-addexpr-depth", cl::Hidden,<br class="gmail_msg">
+                    cl::desc("Maximum depth of recursive AddExpr"),<br class="gmail_msg">
+                    cl::init(32));<br class="gmail_msg"></blockquote></div></div></blockquote><div><br></div><div>The recursion limit is 32...</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+  for (int i = 0; i < 1000; i++) {<br class="gmail_msg">
+    Mul1 = BinaryOperator::CreateMul(Add2, Add1, "", EntryBB);<br class="gmail_msg">
+    Add1 = Add2;<br class="gmail_msg">
+    Add2 = BinaryOperator::CreateAdd(Mul1, Add1, "", EntryBB);<br class="gmail_msg">
+  }<br class="gmail_msg"></blockquote></div></div></blockquote><div><br></div><div>And the test builds IR with 1000 adds and 1000 muls. It isn't clear at all that this is a reasonable way to unittest something.</div><div><br></div><div>What's worse, when I make this 1000 be 10 instead, nothing fails despite transitioning from above to below the recursion limit above. So I'm not really sure what this is testing at all?</div><div><br></div><div>Anyways, this is making each of my test runs over 50% slower (18s -> 26s) and I suspect several build bots are similarly impacted.</div></div></div>