<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=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        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;}
span.hoenzb
        {mso-style-name:hoenzb;}
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";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I also confirm this is not dead. It is used in out-of-tree targets, and we have some experiments going on with it right now.<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'>Cheers,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Arnaud<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><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> llvm-commits-bounces@cs.uiuc.edu [mailto:llvm-commits-bounces@cs.uiuc.edu] <b>On Behalf Of </b>David Blaikie<br><b>Sent:</b> 02 September 2014 23:22<br><b>To:</b> Sean Silva<br><b>Cc:</b> llvm-commits@cs.uiuc.edu<br><b>Subject:</b> Re: [llvm] r216918 - unique_ptrify PBQPBuilder::build<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><p class=MsoNormal>On Tue, Sep 2, 2014 at 2:17 PM, Sean Silva <<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>> wrote:<o:p></o:p></p><div><p class=MsoNormal>This PBQP stuff seems to be all dead?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>All untested, not strictly dead. *throws the other shoe at Lang* (I think I threw one a while back about this)<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal><a href="http://llvm.org/reports/coverage/include/llvm/CodeGen/PBQP/index.html" target="_blank">http://llvm.org/reports/coverage/include/llvm/CodeGen/PBQP/index.html</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><div><p class=MsoNormal><a href="http://llvm.org/reports/coverage/index-sort-f.html" target="_blank">http://llvm.org/reports/coverage/index-sort-f.html</a><o:p></o:p></p></div><div><p class=MsoNormal><span style='color:#888888'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='color:#888888'>-- Sean Silva<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:#888888'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='color:#888888'><o:p> </o:p></span></p></div></div></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><div><div><p class=MsoNormal>On Tue, Sep 2, 2014 at 10:42 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<o:p></o:p></p></div><div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal>Author: dblaikie<br>Date: Tue Sep  2 12:42:01 2014<br>New Revision: 216918<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=216918&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=216918&view=rev</a><br>Log:<br>unique_ptrify PBQPBuilder::build<br><br>Modified:<br>    llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h<br>    llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp<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=216918&r1=216917&r2=216918&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h?rev=216918&r1=216917&r2=216918&view=diff</a><br>==============================================================================<br>--- llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h (original)<br>+++ llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h Tue Sep  2 12:42:01 2014<br>@@ -123,9 +123,10 @@ namespace llvm {<br><br>     /// Build a PBQP instance to represent the register allocation problem for<br>     /// the given MachineFunction.<br>-    virtual PBQPRAProblem *build(MachineFunction *mf, const LiveIntervals *lis,<br>-                                 const MachineBlockFrequencyInfo *mbfi,<br>-                                 const RegSet &vregs);<br>+    virtual std::unique_ptr<PBQPRAProblem><br>+    build(MachineFunction *mf, const LiveIntervals *lis,<br>+          const MachineBlockFrequencyInfo *mbfi, const RegSet &vregs);<br>+<br>   private:<br><br>     void addSpillCosts(PBQP::Vector &costVec, PBQP::PBQPNum spillCost);<br>@@ -142,9 +143,10 @@ namespace llvm {<br><br>     /// Build a PBQP instance to represent the register allocation problem for<br>     /// the given MachineFunction.<br>-    PBQPRAProblem *build(MachineFunction *mf, const LiveIntervals *lis,<br>-                         const MachineBlockFrequencyInfo *mbfi,<br>-                         const RegSet &vregs) override;<br>+    std::unique_ptr<PBQPRAProblem> build(MachineFunction *mf,<br>+                                         const LiveIntervals *lis,<br>+                                         const MachineBlockFrequencyInfo *mbfi,<br>+                                         const RegSet &vregs) override;<br><br>   private:<br><br><br>Modified: llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp?rev=216918&r1=216917&r2=216918&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp?rev=216918&r1=216917&r2=216918&view=diff</a><br>==============================================================================<br>--- llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp (original)<br>+++ llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp Tue Sep  2 12:42:01 2014<br>@@ -183,15 +183,15 @@ unsigned PBQPRAProblem::getPRegForOption<br>   return allowedSet[option - 1];<br> }<br><br>-PBQPRAProblem *PBQPBuilder::build(MachineFunction *mf, const LiveIntervals *lis,<br>-                                  const MachineBlockFrequencyInfo *mbfi,<br>-                                  const RegSet &vregs) {<br>+std::unique_ptr<PBQPRAProblem><br>+PBQPBuilder::build(MachineFunction *mf, const LiveIntervals *lis,<br>+                   const MachineBlockFrequencyInfo *mbfi, const RegSet &vregs) {<br><br>   LiveIntervals *LIS = const_cast<LiveIntervals*>(lis);<br>   MachineRegisterInfo *mri = &mf->getRegInfo();<br>   const TargetRegisterInfo *tri = mf->getSubtarget().getRegisterInfo();<br><br>-  std::unique_ptr<PBQPRAProblem> p(new PBQPRAProblem());<br>+  auto p = llvm::make_unique<PBQPRAProblem>();<br>   PBQPRAGraph &g = p->getGraph();<br>   RegSet pregs;<br><br>@@ -280,7 +280,7 @@ PBQPRAProblem *PBQPBuilder::build(Machin<br>     }<br>   }<br><br>-  return p.release();<br>+  return p;<br> }<br><br> void PBQPBuilder::addSpillCosts(PBQP::Vector &costVec,<br>@@ -309,12 +309,12 @@ void PBQPBuilder::addInterferenceCosts(<br>   }<br> }<br><br>-PBQPRAProblem *PBQPBuilderWithCoalescing::build(MachineFunction *mf,<br>-                                                const LiveIntervals *lis,<br>-                                                const MachineBlockFrequencyInfo *mbfi,<br>-                                                const RegSet &vregs) {<br>+std::unique_ptr<PBQPRAProblem><br>+PBQPBuilderWithCoalescing::build(MachineFunction *mf, const LiveIntervals *lis,<br>+                                 const MachineBlockFrequencyInfo *mbfi,<br>+                                 const RegSet &vregs) {<br><br>-  std::unique_ptr<PBQPRAProblem> p(PBQPBuilder::build(mf, lis, mbfi, vregs));<br>+  std::unique_ptr<PBQPRAProblem> p = PBQPBuilder::build(mf, lis, mbfi, vregs);<br>   PBQPRAGraph &g = p->getGraph();<br><br>   const TargetMachine &tm = mf->getTarget();<br>@@ -383,7 +383,7 @@ PBQPRAProblem *PBQPBuilderWithCoalescing<br>     }<br>   }<br><br>-  return p.release();<br>+  return p;<br> }<br><br> void PBQPBuilderWithCoalescing::addPhysRegCoalesce(PBQP::Vector &costVec,<br>@@ -579,8 +579,8 @@ bool RegAllocPBQP::runOnMachineFunction(<br>     while (!pbqpAllocComplete) {<br>       DEBUG(dbgs() << "  PBQP Regalloc round " << round << ":\n");<br><br>-      std::unique_ptr<PBQPRAProblem> problem(<br>-          builder->build(mf, lis, mbfi, vregsToAlloc));<br>+      std::unique_ptr<PBQPRAProblem> problem =<br>+          builder->build(mf, lis, mbfi, vregsToAlloc);<br><br> #ifndef NDEBUG<br>       if (pbqpDumpGraphs) {<br><br><br>_______________________________________________<br>llvm-commits mailing list<br><a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">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><o:p></o:p></p></blockquote></div></div></div><p class=MsoNormal><o:p> </o:p></p></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></body></html>