summaryrefslogtreecommitdiff
path: root/utils/TableGen/DAGISelEmitter.h
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-05-31 02:11:25 +0000
committerDan Gohman <gohman@apple.com>2008-05-31 02:11:25 +0000
commite4c67cdab4a2ad2ff53183ad32e77e8608c9262d (patch)
tree66fede9210614cfc2f77baffd1b192175170dabd /utils/TableGen/DAGISelEmitter.h
parent28307418668f68e055688922ff8394d8a1ba8f15 (diff)
downloadllvm-e4c67cdab4a2ad2ff53183ad32e77e8608c9262d.tar.gz
llvm-e4c67cdab4a2ad2ff53183ad32e77e8608c9262d.tar.bz2
llvm-e4c67cdab4a2ad2ff53183ad32e77e8608c9262d.tar.xz
Teach the DAGISelEmitter to not compute the variable_ops operand
index for the input pattern in terms of the output pattern. Instead keep track of how many fixed operands the input pattern actually has, and have the input matching code pass the output-emitting function that index value. This simplifies the code, disentangles variables_ops from the support for predication operations, and makes variable_ops more robust. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51808 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.h')
-rw-r--r--utils/TableGen/DAGISelEmitter.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h
index 1b47bcc156..2f626f6b86 100644
--- a/utils/TableGen/DAGISelEmitter.h
+++ b/utils/TableGen/DAGISelEmitter.h
@@ -41,7 +41,9 @@ private:
std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
std::set<std::string> &GeneratedDecl,
std::vector<std::string> &TargetOpcodes,
- std::vector<std::string> &TargetVTs);
+ std::vector<std::string> &TargetVTs,
+ bool &OutputIsVariadic,
+ unsigned &NumInputRootOps);
void EmitPatterns(std::vector<std::pair<const PatternToMatch*,
std::vector<std::pair<unsigned, std::string> > > > &Patterns,
unsigned Indent, std::ostream &OS);