- 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);
- unsigned CodeGenPatternResult(TreePatternNode *N, unsigned &Ctr,
- std::map<std::string,std::string> &VariableMap,
- std::ostream &OS, bool isRoot = false);
- void EmitCodeForPattern(PatternToMatch &Pattern, std::ostream &OS);
+ std::map<std::string,
+ TreePatternNode*> &InstResults,
+ std::vector<Record*> &InstImpInputs,
+ std::vector<Record*> &InstImpResults);
+ void GenerateCodeForPattern(PatternToMatch &Pattern,
+ std::vector<std::pair<bool, std::string> > &GeneratedCode,
+ std::set<std::pair<bool, std::string> > &GeneratedDecl,
+ bool UseGoto);
+ void EmitPatterns(std::vector<std::pair<PatternToMatch*,
+ std::vector<std::pair<bool, std::string> > > > &Patterns,
+ unsigned Indent, std::ostream &OS);