Factor matching code that is common between patterns. This works around
GCC not jump-threading across this common code, and produces far nicer
output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25762 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h
index 3d45f21..04a87b7 100644
--- a/utils/TableGen/DAGISelEmitter.h
+++ b/utils/TableGen/DAGISelEmitter.h
@@ -470,8 +470,11 @@
std::map<std::string, Record*> &InstResults,
std::vector<Record*> &InstImpInputs,
std::vector<Record*> &InstImpResults);
- void EmitCodeForPattern(PatternToMatch &Pattern,
+ void GenerateCodeForPattern(PatternToMatch &Pattern,
std::vector<std::pair<bool, std::string> > &GeneratedCode);
+ void EmitPatterns(std::vector<std::pair<PatternToMatch*,
+ std::vector<std::pair<bool, std::string> > > > &Patterns,
+ unsigned Indent, std::ostream &OS);
void EmitInstructionSelector(std::ostream &OS);
};