OSDN Git Service

Make sure we have a legal type (and simple) before continuing.
authorEric Christopher <echristo@apple.com>
Sat, 30 Oct 2010 21:25:26 +0000 (21:25 +0000)
committerEric Christopher <echristo@apple.com>
Sat, 30 Oct 2010 21:25:26 +0000 (21:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117848 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMFastISel.cpp

index 8a5b73e..5d85187 100644 (file)
@@ -939,8 +939,11 @@ bool ARMFastISel::SelectBranch(const Instruction *I) {
   // TODO: Factor this out.
   if (const CmpInst *CI = dyn_cast<CmpInst>(BI->getCondition())) {
     if (CI->hasOneUse() && (CI->getParent() == I->getParent())) {
+      EVT VT;
       const Type *Ty = CI->getOperand(0)->getType();
-      EVT VT = TLI.getValueType(Ty);
+      if (!isTypeLegal(Ty, VT))
+        return false;
+
       bool isFloat = (Ty->isDoubleTy() || Ty->isFloatTy());
       if (isFloat && !Subtarget->hasVFP2())
         return false;