Add some notes to myself, no functional changes
authorChris Lattner <sabre@nondot.org>
Sun, 23 May 2004 21:23:12 +0000 (21:23 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 23 May 2004 21:23:12 +0000 (21:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13695 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/InstSelectSimple.cpp
lib/Target/X86/X86ISelSimple.cpp

index f9d5387532061e46225fd190e5006ab0d993dc20..494feb97c78026789bd637af3fb78ecb520b6e27 100644 (file)
@@ -3567,12 +3567,24 @@ void ISel::getGEPIndex(MachineBasicBlock *MBB, MachineBasicBlock::iterator IP,
     }
   }
 
-  // GEPTypes is empty, which means we have a single operand left.  See if we
-  // can set it as the base register.
+  // GEPTypes is empty, which means we have a single operand left.  Set it as
+  // the base register.
   //
-  // FIXME: When addressing modes are more powerful/correct, we could load
-  // global addresses directly as 32-bit immediates.
   assert(BaseReg == 0);
+
+#if 0   // FIXME: TODO!
+  if (AllocaInst *AI = dyn_castFixedAlloca(V)) {
+    // FIXME: When we can add FrameIndex values as the first operand, we can
+    // make GEP's of allocas MUCH more efficient!
+    unsigned FI = getFixedSizedAllocaFI(AI);
+    GEPOps.pop_back();
+    return;
+  } else if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) {
+    // FIXME: When addressing modes are more powerful/correct, we could load
+    // global addresses directly as 32-bit immediates.
+  }
+#endif
+
   BaseReg = MBB ? getReg(GEPOps[0], MBB, IP) : 1;
   GEPOps.pop_back();        // Consume the last GEP operand
 }
@@ -3592,9 +3604,9 @@ bool ISel::isGEPFoldable(MachineBasicBlock *MBB,
   GEPOps[0] = Src;
   std::copy(IdxBegin, IdxEnd, GEPOps.begin()+1);
   
-  std::vector<const Type*> GEPTypes;
-  GEPTypes.assign(gep_type_begin(Src->getType(), IdxBegin, IdxEnd),
-                  gep_type_end(Src->getType(), IdxBegin, IdxEnd));
+  std::vector<const Type*>
+    GEPTypes(gep_type_begin(Src->getType(), IdxBegin, IdxEnd),
+             gep_type_end(Src->getType(), IdxBegin, IdxEnd));
 
   MachineBasicBlock::iterator IP;
   if (MBB) IP = MBB->end();
index f9d5387532061e46225fd190e5006ab0d993dc20..494feb97c78026789bd637af3fb78ecb520b6e27 100644 (file)
@@ -3567,12 +3567,24 @@ void ISel::getGEPIndex(MachineBasicBlock *MBB, MachineBasicBlock::iterator IP,
     }
   }
 
-  // GEPTypes is empty, which means we have a single operand left.  See if we
-  // can set it as the base register.
+  // GEPTypes is empty, which means we have a single operand left.  Set it as
+  // the base register.
   //
-  // FIXME: When addressing modes are more powerful/correct, we could load
-  // global addresses directly as 32-bit immediates.
   assert(BaseReg == 0);
+
+#if 0   // FIXME: TODO!
+  if (AllocaInst *AI = dyn_castFixedAlloca(V)) {
+    // FIXME: When we can add FrameIndex values as the first operand, we can
+    // make GEP's of allocas MUCH more efficient!
+    unsigned FI = getFixedSizedAllocaFI(AI);
+    GEPOps.pop_back();
+    return;
+  } else if (GlobalValue *GV = dyn_cast<GlobalValue>(V)) {
+    // FIXME: When addressing modes are more powerful/correct, we could load
+    // global addresses directly as 32-bit immediates.
+  }
+#endif
+
   BaseReg = MBB ? getReg(GEPOps[0], MBB, IP) : 1;
   GEPOps.pop_back();        // Consume the last GEP operand
 }
@@ -3592,9 +3604,9 @@ bool ISel::isGEPFoldable(MachineBasicBlock *MBB,
   GEPOps[0] = Src;
   std::copy(IdxBegin, IdxEnd, GEPOps.begin()+1);
   
-  std::vector<const Type*> GEPTypes;
-  GEPTypes.assign(gep_type_begin(Src->getType(), IdxBegin, IdxEnd),
-                  gep_type_end(Src->getType(), IdxBegin, IdxEnd));
+  std::vector<const Type*>
+    GEPTypes(gep_type_begin(Src->getType(), IdxBegin, IdxEnd),
+             gep_type_end(Src->getType(), IdxBegin, IdxEnd));
 
   MachineBasicBlock::iterator IP;
   if (MBB) IP = MBB->end();