[llvm-commits] [llvm] r67616 - /llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

Chris Lattner sabre at nondot.org
Tue Mar 24 08:22:14 PDT 2009


Author: lattner
Date: Tue Mar 24 10:22:11 2009
New Revision: 67616

URL: http://llvm.org/viewvc/llvm-project?rev=67616&view=rev
Log:
simplify this code a bit now that "allocation to a vreg class" can never
fail.

Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp?rev=67616&r1=67615&r2=67616&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Tue Mar 24 10:22:11 2009
@@ -4929,9 +4929,7 @@
 
   // Otherwise, if this was a reference to an LLVM register class, create vregs
   // for this reference.
-  std::vector<unsigned> RegClassRegs;
-  const TargetRegisterClass *RC = PhysReg.second;
-  if (RC) {
+  if (PhysReg.second != 0) {
     RegVT = *PhysReg.second->vt_begin();
     if (OpInfo.ConstraintVT == MVT::Other)
       ValueVT = RegVT;
@@ -4943,13 +4941,14 @@
 
     OpInfo.AssignedRegs = RegsForValue(TLI, Regs, RegVT, ValueVT);
     return;
-  } else {
-    // This is a reference to a register class that doesn't directly correspond
-    // to an LLVM register class.  Allocate NumRegs consecutive, available,
-    // registers from the class.
-    RegClassRegs = TLI.getRegClassForInlineAsmConstraint(OpInfo.ConstraintCode,
-                                                         OpInfo.ConstraintVT);
   }
+  
+  // This is a reference to a register class that doesn't directly correspond
+  // to an LLVM register class.  Allocate NumRegs consecutive, available,
+  // registers from the class.
+  std::vector<unsigned> RegClassRegs
+    = TLI.getRegClassForInlineAsmConstraint(OpInfo.ConstraintCode,
+                                            OpInfo.ConstraintVT);
 
   const TargetRegisterInfo *TRI = DAG.getTarget().getRegisterInfo();
   unsigned NumAllocated = 0;
@@ -4965,13 +4964,11 @@
 
     // Check to see if this register is allocatable (i.e. don't give out the
     // stack pointer).
-    if (RC == 0) {
-      RC = isAllocatableRegister(Reg, MF, TLI, TRI);
-      if (!RC) {        // Couldn't allocate this register.
-        // Reset NumAllocated to make sure we return consecutive registers.
-        NumAllocated = 0;
-        continue;
-      }
+    const TargetRegisterClass *RC = isAllocatableRegister(Reg, MF, TLI, TRI);
+    if (!RC) {        // Couldn't allocate this register.
+      // Reset NumAllocated to make sure we return consecutive registers.
+      NumAllocated = 0;
+      continue;
     }
 
     // Okay, this register is good, we can use it.





More information about the llvm-commits mailing list