<div dir="ltr">Thanks Jonas!<div><br></div><div>- Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 16, 2015 at 11:45 PM, Jonas Paulsson <span dir="ltr"><<a href="mailto:jonas.paulsson@ericsson.com" target="_blank">jonas.paulsson@ericsson.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: jonpa<br>
Date: Tue Feb 17 01:45:06 2015<br>
New Revision: 229477<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=229477&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=229477&view=rev</a><br>
Log:<br>
[PBQP] NDEBUG guards added around code needed for assert.<br>
<br>
wasConservativelyAllocatable() is only called to assert that a conservatively<br>
allocatable node wasn't forced to spill.<br>
<br>
Modified:<br>
    llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h<br>
    llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h<br>
<br>
Modified: llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h?rev=229477&r1=229476&r2=229477&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h?rev=229477&r1=229476&r2=229477&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h (original)<br>
+++ llvm/trunk/include/llvm/CodeGen/PBQP/ReductionRules.h Tue Feb 17 01:45:06 2015<br>
@@ -144,6 +144,7 @@ namespace PBQP {<br>
     // TODO: Try to normalize newly added/modified edge.<br>
   }<br>
<br>
+#ifndef NDEBUG<br>
   // Does this Cost vector have any register options ?<br>
   template <typename VectorT><br>
   bool hasRegisterOptions(const VectorT &V) {<br>
@@ -161,6 +162,7 @@ namespace PBQP {<br>
<br>
     return false;<br>
   }<br>
+#endif<br>
<br>
   // \brief Find a solution to a fully reduced graph by backpropagation.<br>
   //<br>
@@ -187,12 +189,14 @@ namespace PBQP {<br>
<br>
       RawVector v = G.getNodeCosts(NId);<br>
<br>
+#ifndef NDEBUG<br>
       // Although a conservatively allocatable node can be allocated to a register,<br>
       // spilling it may provide a lower cost solution. Assert here that spilling<br>
       // is done by choice, not because there were no register available.<br>
       if (G.getNodeMetadata(NId).wasConservativelyAllocatable())<br>
         assert(hasRegisterOptions(v) && "A conservatively allocatable node "<br>
                                         "must have available register options");<br>
+#endif<br>
<br>
       for (auto EId : G.adjEdgeIds(NId)) {<br>
         const Matrix& edgeCosts = G.getEdgeCosts(EId);<br>
<br>
Modified: llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h?rev=229477&r1=229476&r2=229477&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h?rev=229477&r1=229476&r2=229477&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h (original)<br>
+++ llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h Tue Feb 17 01:45:06 2015<br>
@@ -192,7 +192,11 @@ public:<br>
<br>
   NodeMetadata()<br>
     : RS(Unprocessed), NumOpts(0), DeniedOpts(0), OptUnsafeEdges(nullptr),<br>
-      VReg(0), everConservativelyAllocatable(false) {}<br>
+      VReg(0)<br>
+#ifndef NDEBUG<br>
+      , everConservativelyAllocatable(false)<br>
+#endif<br>
+      {}<br>
<br>
   // FIXME: Re-implementing default behavior to work around MSVC. Remove once<br>
   // MSVC synthesizes move constructors properly.<br>
@@ -257,10 +261,12 @@ public:<br>
     assert(RS >= this->RS && "A node's reduction state can not be downgraded");<br>
     this->RS = RS;<br>
<br>
+#ifndef NDEBUG<br>
     // Remember this state to assert later that a non-infinite register<br>
     // option was available.<br>
     if (RS == ConservativelyAllocatable)<br>
       everConservativelyAllocatable = true;<br>
+#endif<br>
   }<br>
<br>
<br>
@@ -286,9 +292,11 @@ public:<br>
        &OptUnsafeEdges[NumOpts]);<br>
   }<br>
<br>
+#ifndef NDEBUG<br>
   bool wasConservativelyAllocatable() const {<br>
     return everConservativelyAllocatable;<br>
   }<br>
+#endif<br>
<br>
 private:<br>
   ReductionState RS;<br>
@@ -297,7 +305,10 @@ private:<br>
   std::unique_ptr<unsigned[]> OptUnsafeEdges;<br>
   unsigned VReg;<br>
   GraphMetadata::AllowedRegVecRef AllowedRegs;<br>
+<br>
+#ifndef NDEBUG<br>
   bool everConservativelyAllocatable;<br>
+#endif<br>
 };<br>
<br>
 class RegAllocSolverImpl {<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>