diff options
author | Hal Finkel <hfinkel@anl.gov> | 2014-01-02 20:47:05 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2014-01-02 20:47:05 +0000 |
commit | 6fa9961327822d9c15f36a52b1aafce69ee9a404 (patch) | |
tree | cfc3030fbe37638746213d340451f2ef5089edf9 /utils | |
parent | e13db1008b07fc1f367b0a99ab0c3ba6fb057fc9 (diff) | |
download | llvm-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.cpp | 3 |
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); |