Fix pessimizations on sized arrays


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1423 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/LevelRaise.cpp b/lib/Transforms/LevelRaise.cpp
index f155c50..19325b0 100644
--- a/lib/Transforms/LevelRaise.cpp
+++ b/lib/Transforms/LevelRaise.cpp
@@ -539,7 +539,9 @@
   if (!ThePtrType) return false;
 
   const Type *ElTy = ThePtrType->getElementType();
-  if (isa<MethodType>(ElTy) || isa<ArrayType>(ElTy)) return false;
+  if (isa<MethodType>(ElTy) ||
+      (isa<ArrayType>(ElTy) && cast<ArrayType>(ElTy)->isUnsized()))
+    return false;
 
   unsigned ElementSize = TD.getTypeSize(ElTy);
   bool InsertCast = false;
@@ -586,7 +588,7 @@
   //
   ValueTypeCache ConvertedTypes;
   if (!ValueConvertableToType(V, DestTy, ConvertedTypes)) {
-    cerr << "FAILED to convert types of values for " << V << "\n";
+    cerr << "FAILED to convert types of values for " << V << " to " << DestTy << "\n";
     ConvertedTypes.clear();
     ValueConvertableToType(V, DestTy, ConvertedTypes);
     return false;