aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen/DAGISelEmitter.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2005-12-09 00:48:42 +0000
committerEvan Cheng <evan.cheng@apple.com>2005-12-09 00:48:42 +0000
commitc45146ace5368066e70ada7a35cc4ab851c955e7 (patch)
tree56c1333c17387f3a4f39f262938ded2b93a6863f /utils/TableGen/DAGISelEmitter.h
parentdd3ccde9eaf97f59859c9db0c8bfabd097064bfc (diff)
downloadexternal_llvm-c45146ace5368066e70ada7a35cc4ab851c955e7.zip
external_llvm-c45146ace5368066e70ada7a35cc4ab851c955e7.tar.gz
external_llvm-c45146ace5368066e70ada7a35cc4ab851c955e7.tar.bz2
* Make sure complex pattern operands are selected first since their select
functions can return false and causing the instruction pattern match to fail. * Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24642 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.h')
-rw-r--r--utils/TableGen/DAGISelEmitter.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h
index df52c0e..0a2ab89 100644
--- a/utils/TableGen/DAGISelEmitter.h
+++ b/utils/TableGen/DAGISelEmitter.h
@@ -423,15 +423,16 @@ private:
std::map<std::string, Record*> &InstResults);
void EmitMatchForPattern(TreePatternNode *N, const std::string &RootName,
std::map<std::string,std::string> &VarMap,
- unsigned PatternNo, std::ostream &OS);
- void EmitLeadChainForPattern(TreePatternNode *N, const std::string &RootName,
- std::ostream &OS, bool &HasChain);
+ unsigned PatternNo, std::ostream &OS,
+ std::string &ChainName,
+ bool &HasChain, bool &InFlag);
void EmitCopyToRegsForPattern(TreePatternNode *N, const std::string &RootName,
- std::ostream &OS, bool &HasChain, bool &InFlag);
+ std::ostream &OS, bool HasChain);
std::pair<unsigned, unsigned>
- CodeGenPatternResult(TreePatternNode *N, unsigned &Ctr,
+ CodeGenPatternResult(TreePatternNode *M, TreePatternNode *N, unsigned &Ctr,
+ std::string &ChainName,
std::map<std::string,std::string> &VariableMap,
- unsigned PatternNo, std::ostream &OS, bool &HasChain,
+ unsigned PatternNo, std::ostream &OS,
bool InFlag, bool isRoot = false);
void EmitCodeForPattern(PatternToMatch &Pattern, std::ostream &OS);
void EmitInstructionSelector(std::ostream &OS);