<div dir="ltr">Thanks for the cleanup Eric!<div><br></div><div>- Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 27, 2015 at 12:27 AM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: echristo<br>
Date: Tue Jan 27 02:27:06 2015<br>
New Revision: 227181<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=227181&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=227181&view=rev</a><br>
Log:<br>
Have the PBQP register allocator use the subtarget on the MachineFunction.<br>
(and remove an extraneous private).<br>
<br>
Modified:<br>
    llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp<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=227181&r1=227180&r2=227181&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp?rev=227181&r1=227180&r2=227181&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/RegAllocPBQP.cpp Tue Jan 27 02:27:06 2015<br>
@@ -172,8 +172,6 @@ public:<br>
 class Interference : public PBQPRAConstraint {<br>
 private:<br>
<br>
-private:<br>
-<br>
   typedef const PBQP::RegAlloc::AllowedRegVector* AllowedRegVecPtr;<br>
   typedef std::pair<AllowedRegVecPtr, AllowedRegVecPtr> IMatrixKey;<br>
   typedef DenseMap<IMatrixKey, PBQPRAGraph::MatrixPtr> IMatrixCache;<br>
@@ -308,7 +306,7 @@ private:<br>
                               PBQPRAGraph::NodeId MId, IMatrixCache &C) {<br>
<br>
     const TargetRegisterInfo &TRI =<br>
-      *G.getMetadata().MF.getTarget().getSubtargetImpl()->getRegisterInfo();<br>
+        *G.getMetadata().MF.getSubtarget().getRegisterInfo();<br>
<br>
     const auto &NRegs = G.getNodeMetadata(NId).getAllowedRegs();<br>
     const auto &MRegs = G.getNodeMetadata(MId).getAllowedRegs();<br>
@@ -342,7 +340,7 @@ public:<br>
   void apply(PBQPRAGraph &G) override {<br>
     MachineFunction &MF = G.getMetadata().MF;<br>
     MachineBlockFrequencyInfo &MBFI = G.getMetadata().MBFI;<br>
-    CoalescerPair CP(*MF.getTarget().getSubtargetImpl()->getRegisterInfo());<br>
+    CoalescerPair CP(*MF.getSubtarget().getRegisterInfo());<br>
<br>
     // Scan the machine function and add a coalescing cost whenever CoalescerPair<br>
     // gives the Ok.<br>
@@ -494,7 +492,7 @@ void RegAllocPBQP::initializeGraph(PBQPR<br>
   LiveIntervals &LIS = G.getMetadata().LIS;<br>
   const MachineRegisterInfo &MRI = G.getMetadata().MF.getRegInfo();<br>
   const TargetRegisterInfo &TRI =<br>
-    *G.getMetadata().MF.getTarget().getSubtargetImpl()->getRegisterInfo();<br>
+      *G.getMetadata().MF.getSubtarget().getRegisterInfo();<br>
<br>
   for (auto VReg : VRegsToAlloc) {<br>
     const TargetRegisterClass *TRC = MRI.getRegClass(VReg);<br>
@@ -553,8 +551,7 @@ bool RegAllocPBQP::mapPBQPToRegAlloc(con<br>
                                      Spiller &VRegSpiller) {<br>
   MachineFunction &MF = G.getMetadata().MF;<br>
   LiveIntervals &LIS = G.getMetadata().LIS;<br>
-  const TargetRegisterInfo &TRI =<br>
-    *MF.getTarget().getSubtargetImpl()->getRegisterInfo();<br>
+  const TargetRegisterInfo &TRI = *MF.getSubtarget().getRegisterInfo();<br>
   (void)TRI;<br>
<br>
   // Set to true if we have any spills<br>
@@ -670,7 +667,7 @@ bool RegAllocPBQP::runOnMachineFunction(<br>
   // If there are non-empty intervals allocate them using pbqp.<br>
   if (!VRegsToAlloc.empty()) {<br>
<br>
-    const TargetSubtargetInfo &Subtarget = *MF.getTarget().getSubtargetImpl();<br>
+    const TargetSubtargetInfo &Subtarget = MF.getSubtarget();<br>
     std::unique_ptr<PBQPRAConstraintList> ConstraintsRoot =<br>
       llvm::make_unique<PBQPRAConstraintList>();<br>
     ConstraintsRoot->addConstraint(llvm::make_unique<SpillCosts>());<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>