Lines Matching defs:Matcher
1 //===- DAGISelMatcherEmitter.cpp - Matcher Emitter ------------------------===//
54 unsigned EmitMatcherList(const Matcher *N, unsigned Indent,
59 void EmitHistogram(const Matcher *N, formatted_raw_ostream &OS);
61 unsigned EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx,
138 EmitMatcher(const Matcher *N, unsigned Indent, unsigned CurrentIdx,
143 case Matcher::Scope: {
205 case Matcher::RecordNode:
214 case Matcher::RecordChild:
224 case Matcher::RecordMemRef:
228 case Matcher::CaptureGlueInput:
232 case Matcher::MoveChild:
236 case Matcher::MoveParent:
240 case Matcher::CheckSame:
245 case Matcher::CheckChildSame:
251 case Matcher::CheckPatternPredicate: {
259 case Matcher::CheckPredicate: {
268 case Matcher::CheckOpcode:
273 case Matcher::SwitchOpcode:
274 case Matcher::SwitchType: {
293 const Matcher *Child;
363 case Matcher::CheckType:
370 case Matcher::CheckChildType:
376 case Matcher::CheckInteger: {
382 case Matcher::CheckCondCode:
387 case Matcher::CheckValueType:
392 case Matcher::CheckComplexPat: {
411 case Matcher::CheckAndImm: {
418 case Matcher::CheckOrImm: {
425 case Matcher::CheckFoldableChainNode:
429 case Matcher::EmitInteger: {
437 case Matcher::EmitStringInteger: {
446 case Matcher::EmitRegister: {
447 const EmitRegisterMatcher *Matcher = cast<EmitRegisterMatcher>(N);
448 const CodeGenRegister *Reg = Matcher->getReg();
452 OS << "OPC_EmitRegister2, " << getEnumName(Matcher->getVT()) << ", ";
456 OS << "OPC_EmitRegister, " << getEnumName(Matcher->getVT()) << ", ";
469 case Matcher::EmitConvertToTarget:
474 case Matcher::EmitMergeInputChains: {
490 case Matcher::EmitCopyToReg:
496 case Matcher::EmitNodeXForm: {
506 case Matcher::EmitNode:
507 case Matcher::MorphNodeTo: {
559 case Matcher::MarkGlueResults: {
568 case Matcher::CompleteMatch: {
591 EmitMatcherList(const Matcher *N, unsigned Indent, unsigned CurrentIdx,
720 static void BuildHistogram(const Matcher *M, std::vector<unsigned> &OpcodeFreq){
742 void MatcherTableEmitter::EmitHistogram(const Matcher *M,
753 switch ((Matcher::KindTy)i) {
754 case Matcher::Scope: OS << "OPC_Scope"; break;
755 case Matcher::RecordNode: OS << "OPC_RecordNode"; break;
756 case Matcher::RecordChild: OS << "OPC_RecordChild"; break;
757 case Matcher::RecordMemRef: OS << "OPC_RecordMemRef"; break;
758 case Matcher::CaptureGlueInput: OS << "OPC_CaptureGlueInput"; break;
759 case Matcher::MoveChild: OS << "OPC_MoveChild"; break;
760 case Matcher::MoveParent: OS << "OPC_MoveParent"; break;
761 case Matcher::CheckSame: OS << "OPC_CheckSame"; break;
762 case Matcher::CheckChildSame: OS << "OPC_CheckChildSame"; break;
763 case Matcher::CheckPatternPredicate:
765 case Matcher::CheckPredicate: OS << "OPC_CheckPredicate"; break;
766 case Matcher::CheckOpcode: OS << "OPC_CheckOpcode"; break;
767 case Matcher::SwitchOpcode: OS << "OPC_SwitchOpcode"; break;
768 case Matcher::CheckType: OS << "OPC_CheckType"; break;
769 case Matcher::SwitchType: OS << "OPC_SwitchType"; break;
770 case Matcher::CheckChildType: OS << "OPC_CheckChildType"; break;
771 case Matcher::CheckInteger: OS << "OPC_CheckInteger"; break;
772 case Matcher::CheckCondCode: OS << "OPC_CheckCondCode"; break;
773 case Matcher::CheckValueType: OS << "OPC_CheckValueType"; break;
774 case Matcher::CheckComplexPat: OS << "OPC_CheckComplexPat"; break;
775 case Matcher::CheckAndImm: OS << "OPC_CheckAndImm"; break;
776 case Matcher::CheckOrImm: OS << "OPC_CheckOrImm"; break;
777 case Matcher::CheckFoldableChainNode:
779 case Matcher::EmitInteger: OS << "OPC_EmitInteger"; break;
780 case Matcher::EmitStringInteger: OS << "OPC_EmitStringInteger"; break;
781 case Matcher::EmitRegister: OS << "OPC_EmitRegister"; break;
782 case Matcher::EmitConvertToTarget: OS << "OPC_EmitConvertToTarget"; break;
783 case Matcher::EmitMergeInputChains: OS << "OPC_EmitMergeInputChains"; break;
784 case Matcher::EmitCopyToReg: OS << "OPC_EmitCopyToReg"; break;
785 case Matcher::EmitNode: OS << "OPC_EmitNode"; break;
786 case Matcher::MorphNodeTo: OS << "OPC_MorphNodeTo"; break;
787 case Matcher::EmitNodeXForm: OS << "OPC_EmitNodeXForm"; break;
788 case Matcher::MarkGlueResults: OS << "OPC_MarkGlueResults"; break;
789 case Matcher::CompleteMatch: OS << "OPC_CompleteMatch"; break;
798 void llvm::EmitMatcherTable(const Matcher *TheMatcher,