Now that iPTR is a fully resolved type. We end up losing the type check for
authorEvan Cheng <evan.cheng@apple.com>
Fri, 19 May 2006 07:24:32 +0000 (07:24 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 19 May 2006 07:24:32 +0000 (07:24 +0000)
patterns that look like this:

def : Pat<(i32 (X86Wrapper tconstpool  :$dst)), (MOV32ri tconstpool  :$dst)>;

InsertOneTypeCheck should copy the type from the resolved pattern to the
unresolved one as long as there types are different.

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

utils/TableGen/DAGISelEmitter.cpp

index 564e194f72f504c932da22f49fc1a2d4167ded39..5156d9e9318739985da79650c24c5cde9582170b 100644 (file)
@@ -2808,7 +2808,7 @@ public:
   bool InsertOneTypeCheck(TreePatternNode *Pat, TreePatternNode *Other,
                           const std::string &Prefix) {
     // Did we find one?
-    if (!Pat->hasTypeSet()) {
+    if (Pat->getExtTypes() != Other->getExtTypes()) {
       // Move a type over from 'other' to 'pat'.
       Pat->setTypes(Other->getExtTypes());
       emitCheck(Prefix + ".Val->getValueType(0) == MVT::" +