add another case from the ppc backend. This is obviously a huge and
authorChris Lattner <sabre@nondot.org>
Sat, 27 Feb 2010 08:19:47 +0000 (08:19 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 27 Feb 2010 08:19:47 +0000 (08:19 +0000)
dissatisfying hack.  TODO: Improve it. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97317 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelMatcher.cpp

index 601ac87ea46feb35b704f4532d12a45c5fab4be2..d8aee08517c309b2f813c62159eb6eca63d7e2ca 100644 (file)
@@ -271,7 +271,10 @@ bool CheckOpcodeMatcher::isContradictoryImpl(const Matcher *M) const {
   // This is a special common case we see a lot in the X86 backend, we know that
   // ISD::STORE nodes can't have non-void type.
   if (const CheckTypeMatcher *CT = dyn_cast<CheckTypeMatcher>(M))
-    return getOpcodeName() == "ISD::STORE" && CT->getType() != MVT::isVoid;
+    // FIXME: This sucks, get void nodes from type constraints.
+    return (getOpcodeName() == "ISD::STORE" ||
+            getOpcodeName() == "ISD::INTRINSIC_VOID") &&
+           CT->getType() != MVT::isVoid;
   
   return false;
 }