summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-01-02 20:47:05 +0000
committerHal Finkel <hfinkel@anl.gov>2014-01-02 20:47:05 +0000
commit6fa9961327822d9c15f36a52b1aafce69ee9a404 (patch)
treecfc3030fbe37638746213d340451f2ef5089edf9 /utils
parente13db1008b07fc1f367b0a99ab0c3ba6fb057fc9 (diff)
downloadllvm-6fa9961327822d9c15f36a52b1aafce69ee9a404.tar.gz
llvm-6fa9961327822d9c15f36a52b1aafce69ee9a404.tar.bz2
llvm-6fa9961327822d9c15f36a52b1aafce69ee9a404.tar.xz
[TableGen] Handle ValueType in CodeGenDAGPatterns GetNumNodeResults
A ValueType in a pattern dag is a type cast, and GetNumNodeResults should handle it (the type cast has only one result). This comes up, for example, during the type checking of pattern fragments, for example, AArch64's Neon_combine_2d fragment is: dag Operands = (ops node:$Rm, node:$Rn); dag Fragment = (v2f64 (concat_vectors (v1f64 node:$Rm), (v1f64 node:$Rn))); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198347 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/CodeGenDAGPatterns.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/utils/TableGen/CodeGenDAGPatterns.cpp b/utils/TableGen/CodeGenDAGPatterns.cpp
index 717090ae01..6941732aaa 100644
--- a/utils/TableGen/CodeGenDAGPatterns.cpp
+++ b/utils/TableGen/CodeGenDAGPatterns.cpp
@@ -1116,6 +1116,9 @@ static unsigned GetNumNodeResults(Record *Operator, CodeGenDAGPatterns &CDP) {
if (Operator->isSubClassOf("SDNodeXForm"))
return 1; // FIXME: Generalize SDNodeXForm
+ if (Operator->isSubClassOf("ValueType"))
+ return 1; // A type-cast of one result.
+
Operator->dump();
errs() << "Unhandled node in GetNumNodeResults\n";
exit(1);