diff options
author | Evan Cheng <evan.cheng@apple.com> | 2005-12-09 00:48:42 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2005-12-09 00:48:42 +0000 |
commit | c45146ace5368066e70ada7a35cc4ab851c955e7 (patch) | |
tree | 56c1333c17387f3a4f39f262938ded2b93a6863f /utils/TableGen/DAGISelEmitter.h | |
parent | dd3ccde9eaf97f59859c9db0c8bfabd097064bfc (diff) | |
download | external_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.h | 13 |
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); |