Remove unsized array support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1461 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/ConstantReader.cpp b/lib/Bytecode/Reader/ConstantReader.cpp
index 671afd2..78da567 100644
--- a/lib/Bytecode/Reader/ConstantReader.cpp
+++ b/lib/Bytecode/Reader/ConstantReader.cpp
@@ -55,7 +55,7 @@
     const Type *ElementType = getType(ElTyp);
     if (ElementType == 0) return failure(Val);
 
-    int NumElements;
+    unsigned NumElements;
     if (read_vbr(Buf, EndBuf, NumElements)) return failure(Val);
 
     BCR_TRACE(5, "Array Type Constant #" << ElTyp << " size=" 
@@ -239,11 +239,7 @@
 
   case Type::ArrayTyID: {
     const ArrayType *AT = cast<const ArrayType>(Ty);
-    unsigned NumElements;
-    if (AT->isSized())          // Sized array, # elements stored in type!
-      NumElements = (unsigned)AT->getNumElements();
-    else                        // Unsized array, # elements stored in stream!
-      if (read_vbr(Buf, EndBuf, NumElements)) return failure(true);
+    unsigned NumElements = AT->getNumElements();
 
     vector<Constant*> Elements;
     while (NumElements--) {   // Read all of the elements of the constant.
@@ -320,6 +316,7 @@
       break;
     }
     default:
+      BCR_TRACE(5, "UNKNOWN Pointer Constant Type!\n");
       return failure(true);
     }
     break;
diff --git a/lib/Bytecode/Writer/ConstantWriter.cpp b/lib/Bytecode/Writer/ConstantWriter.cpp
index 0700a2e..bcfa976 100644
--- a/lib/Bytecode/Writer/ConstantWriter.cpp
+++ b/lib/Bytecode/Writer/ConstantWriter.cpp
@@ -123,9 +123,7 @@
   case Type::ArrayTyID: {
     const ConstantArray *CPA = cast<const ConstantArray>(CPV);
     unsigned size = CPA->getValues().size();
-    if (!((const ArrayType *)CPA->getType())->isSized())
-      output_vbr(size, Out);            // Not for sized arrays!!!
-
+    assert(size == cast<ArrayType>(CPA->getType())->getNumElements() && "ConstantArray out of whack!");
     for (unsigned i = 0; i < size; i++) {
       int Slot = Table.getValSlot(CPA->getOperand(i));
       assert(Slot != -1 && "Constant used but not available!!");
diff --git a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
index 032faf1..fb2888b 100644
--- a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
+++ b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp
@@ -447,8 +447,6 @@
       ArrayType *aty = cast<ArrayType>(CPA->getType());
       if (ArrayTypeIsString(aty))
         return 1 + CPA->getNumOperands();
-      else if (! aty->isSized())
-        return 0;
     }
   
   return target.findOptimalStorageSize(CV->getType());
@@ -477,16 +475,10 @@
 }
 
 // Get the size of the type and then use SizeToAlignment.
-// If this is an unsized array, just return the L1 cache line size
-// (viz., the default behavior for large global objects).
 // 
 inline unsigned int
 TypeToAlignment(const Type* type, const TargetMachine& target)
 {
-  if (ArrayType* aty = dyn_cast<ArrayType>(type))
-    if (! aty->isSized())
-      return target.getCacheInfo().getCacheLineSize(1);
-  
   return SizeToAlignment(target.findOptimalStorageSize(type), target);
 }