Remove unsized array support
authorChris Lattner <sabre@nondot.org>
Fri, 14 Dec 2001 16:30:51 +0000 (16:30 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 14 Dec 2001 16:30:51 +0000 (16:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1461 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Bytecode/Reader/ConstantReader.cpp
lib/Bytecode/Writer/ConstantWriter.cpp
lib/Target/SparcV9/SparcV9AsmPrinter.cpp

index 671afd2066e71243d7a37d521162c1fbb91675c8..78da567f012a720e71356c519f4f14e0535d4e60 100644 (file)
@@ -55,7 +55,7 @@ const Type *BytecodeParser::parseTypeConstant(const uchar *&Buf,
     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 @@ bool BytecodeParser::parseConstantValue(const uchar *&Buf, const uchar *EndBuf,
 
   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 @@ bool BytecodeParser::parseConstantValue(const uchar *&Buf, const uchar *EndBuf,
       break;
     }
     default:
+      BCR_TRACE(5, "UNKNOWN Pointer Constant Type!\n");
       return failure(true);
     }
     break;
index 0700a2e63e7c050f76e1f6567ca64daf1e0c8c31..bcfa97657313dbab593a3c00aa88224843155f61 100644 (file)
@@ -123,9 +123,7 @@ bool BytecodeWriter::outputConstant(const Constant *CPV) {
   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!!");
index 032faf12d654c628546dc8efe419d35ba9e72e0e..fb2888b05d8a3a1c4feac995d983413ab90f0da6 100644 (file)
@@ -447,8 +447,6 @@ ConstantToSize(const Constant* CV, const TargetMachine& target)
       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 @@ SizeToAlignment(unsigned int size, const TargetMachine& target)
 }
 
 // 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);
 }