summaryrefslogtreecommitdiff
path: root/utils/TableGen/DAGISelMatcherOpt.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-28 21:53:42 +0000
committerChris Lattner <sabre@nondot.org>2010-02-28 21:53:42 +0000
commitff7fb60f2a7e2f3efd54df6480aadcb4adf5cab7 (patch)
tree7204ffaf2b65ea7b49772943f5c8386a15a718a1 /utils/TableGen/DAGISelMatcherOpt.cpp
parent21221e357c6aa9ade3966ee86dab7d44c25220d0 (diff)
downloadllvm-ff7fb60f2a7e2f3efd54df6480aadcb4adf5cab7.tar.gz
llvm-ff7fb60f2a7e2f3efd54df6480aadcb4adf5cab7.tar.bz2
llvm-ff7fb60f2a7e2f3efd54df6480aadcb4adf5cab7.tar.xz
enhance the EmitNode/MorphNodeTo operands to take a bit that
specifies whether there is an output flag or not. Use this instead of redundantly encoding the chain/flag results in the output vtlist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97419 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelMatcherOpt.cpp')
-rw-r--r--utils/TableGen/DAGISelMatcherOpt.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/utils/TableGen/DAGISelMatcherOpt.cpp b/utils/TableGen/DAGISelMatcherOpt.cpp
index 65a01fa6b9..01723d3ec8 100644
--- a/utils/TableGen/DAGISelMatcherOpt.cpp
+++ b/utils/TableGen/DAGISelMatcherOpt.cpp
@@ -92,7 +92,7 @@ static void ContractNodes(OwningPtr<Matcher> &MatcherPtr,
// NOTE: Strictly speaking, we don't have to check for the flag here
// because the code in the pattern generator doesn't handle it right. We
// do it anyway for thoroughness.
- if (!EN->hasFlag() &&
+ if (!EN->hasOutFlag() &&
Pattern.getSrcPattern()->NodeHasProperty(SDNPOutFlag, CGP))
ResultsMatch = false;
@@ -110,9 +110,10 @@ static void ContractNodes(OwningPtr<Matcher> &MatcherPtr,
const SmallVectorImpl<MVT::SimpleValueType> &VTs = EN->getVTList();
const SmallVectorImpl<unsigned> &Operands = EN->getOperandList();
MatcherPtr.reset(new MorphNodeToMatcher(EN->getOpcodeName(),
- &VTs[0], VTs.size(),
+ VTs.data(), VTs.size(),
Operands.data(),Operands.size(),
- EN->hasChain(), EN->hasFlag(),
+ EN->hasChain(), EN->hasInFlag(),
+ EN->hasOutFlag(),
EN->hasMemRefs(),
EN->getNumFixedArityOperands(),
Pattern));