summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/GlobalISelEmitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/utils/TableGen/GlobalISelEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/GlobalISelEmitter.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp
index b595143701a..467ae40e51d 100644
--- a/llvm/utils/TableGen/GlobalISelEmitter.cpp
+++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp
@@ -170,6 +170,28 @@ static std::string explainPredicates(const TreePatternNode *N) {
Explanation += " always-true";
if (P.isImmediatePattern())
Explanation += " immediate";
+
+ if (P.isUnindexed())
+ Explanation += " unindexed";
+
+ if (P.isNonExtLoad())
+ Explanation += " non-extload";
+ if (P.isAnyExtLoad())
+ Explanation += " extload";
+ if (P.isSignExtLoad())
+ Explanation += " sextload";
+ if (P.isZeroExtLoad())
+ Explanation += " zextload";
+
+ if (P.isNonTruncStore())
+ Explanation += " non-truncstore";
+ if (P.isTruncStore())
+ Explanation += " truncstore";
+
+ if (Record *VT = P.getMemoryVT())
+ Explanation += (" MemVT=" + VT->getName()).str();
+ if (Record *VT = P.getScalarMemoryVT())
+ Explanation += (" ScalarVT(MemVT)=" + VT->getName()).str();
}
return Explanation;
}
@@ -204,6 +226,9 @@ static Error isTrivialOperatorNode(const TreePatternNode *N) {
HasUnsupportedPredicate = true;
Explanation = Separator + "Has a predicate (" + explainPredicates(N) + ")";
Separator = ", ";
+ Explanation += (Separator + "first-failing:" +
+ Predicate.getOrigPatFragRecord()->getRecord()->getName())
+ .str();
break;
}
OpenPOWER on IntegriCloud