[llvm-commits] [llvm] r55294 - /llvm/trunk/lib/VMCore/Verifier.cpp

Chris Lattner sabre at nondot.org
Sun Aug 24 13:46:14 PDT 2008


Author: lattner
Date: Sun Aug 24 15:46:13 2008
New Revision: 55294

URL: http://llvm.org/viewvc/llvm-project?rev=55294&view=rev
Log:
remove the type checking logic already done by tblgen, just keep the
parts tblgen doesn't do (checking for constant, alloca, enclosing 
function has gc marker).  This passes dj! :)

Modified:
    llvm/trunk/lib/VMCore/Verifier.cpp

Modified: llvm/trunk/lib/VMCore/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=55294&r1=55293&r2=55294&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/Verifier.cpp (original)
+++ llvm/trunk/lib/VMCore/Verifier.cpp Sun Aug 24 15:46:13 2008
@@ -1285,43 +1285,17 @@
     break;
   case Intrinsic::gcroot:
   case Intrinsic::gcwrite:
-  case Intrinsic::gcread: {
-      Type *PtrTy    = PointerType::getUnqual(Type::Int8Ty),
-           *PtrPtrTy = PointerType::getUnqual(PtrTy);
-      
-      switch (ID) {
-      default:
-        break;
-      case Intrinsic::gcroot:
-        Assert1(CI.getOperand(1)->getType() == PtrPtrTy,
-                "Intrinsic parameter #1 is not i8**.", &CI);
-        Assert1(CI.getOperand(2)->getType() == PtrTy,
-                "Intrinsic parameter #2 is not i8*.", &CI);
-        Assert1(isa<AllocaInst>(CI.getOperand(1)->stripPointerCasts()),
-                "llvm.gcroot parameter #1 must be an alloca.", &CI);
-        Assert1(isa<Constant>(CI.getOperand(2)),
-                "llvm.gcroot parameter #2 must be a constant.", &CI);
-        break;
-      case Intrinsic::gcwrite:
-        Assert1(CI.getOperand(1)->getType() == PtrTy,
-                "Intrinsic parameter #1 is not a i8*.", &CI);
-        Assert1(CI.getOperand(2)->getType() == PtrTy,
-                "Intrinsic parameter #2 is not a i8*.", &CI);
-        Assert1(CI.getOperand(3)->getType() == PtrPtrTy,
-                "Intrinsic parameter #3 is not a i8**.", &CI);
-        break;
-      case Intrinsic::gcread:
-        Assert1(CI.getOperand(1)->getType() == PtrTy,
-                "Intrinsic parameter #1 is not a i8*.", &CI);
-        Assert1(CI.getOperand(2)->getType() == PtrPtrTy,
-                "Intrinsic parameter #2 is not a i8**.", &CI);
-        break;
-      }
+  case Intrinsic::gcread:
+    if (ID == Intrinsic::gcroot) {
+      Assert1(isa<AllocaInst>(CI.getOperand(1)->stripPointerCasts()),
+              "llvm.gcroot parameter #1 must be an alloca.", &CI);
+      Assert1(isa<Constant>(CI.getOperand(2)),
+              "llvm.gcroot parameter #2 must be a constant.", &CI);
+    }
       
-      Assert1(CI.getParent()->getParent()->hasGC(),
-              "Enclosing function does not use GC.",
-              &CI);
-    } break;
+    Assert1(CI.getParent()->getParent()->hasGC(),
+            "Enclosing function does not use GC.", &CI);
+    break;
   case Intrinsic::init_trampoline:
     Assert1(isa<Function>(CI.getOperand(2)->stripPointerCasts()),
             "llvm.init_trampoline parameter #2 must resolve to a function.",





More information about the llvm-commits mailing list