Lines Matching refs:MatchTable

415 class MatchTable;
491 const MatchTable &Table) const;
499 class MatchTable { class
565 static MatchTable buildTable(ArrayRef<Matcher *> Rules, bool WithCoverage);
567 MatchTable(bool WithCoverage, unsigned ID = 0) in MatchTable() function in __anon612774070111::MatchTable
624 MatchTableRecord MatchTable::LineBreak = {
629 const MatchTable &Table) const { in emit()
661 MatchTable &operator<<(MatchTable &Table, const MatchTableRecord &Value) { in operator <<()
677 virtual void emit(MatchTable &Table) = 0;
684 MatchTable MatchTable::buildTable(ArrayRef<Matcher *> Rules, in buildTable()
686 MatchTable Table(WithCoverage); in buildTable()
690 return Table << MatchTable::Opcode("GIM_Reject") << MatchTable::LineBreak; in buildTable()
733 void emit(MatchTable &Table) override;
788 void emit(MatchTable &Table) override;
815 MatchTable &Table);
981 void emit(MatchTable &Table) override;
1068 void emitPredicateListOpcodes(MatchTable &Table, Args &&... args) { in emitPredicateListOpcodes()
1070 Table << MatchTable::Comment(getNoPredicateComment()) in emitPredicateListOpcodes()
1071 << MatchTable::LineBreak; in emitPredicateListOpcodes()
1088 MatchTable &Table, Args &&... args) { in emitFilteredPredicateListOpcodes()
1090 Table << MatchTable::Comment(getNoPredicateComment()) in emitFilteredPredicateListOpcodes()
1091 << MatchTable::LineBreak; in emitFilteredPredicateListOpcodes()
1154 virtual void emitPredicateOpcodes(MatchTable &Table,
1225 void emitPredicateOpcodes(MatchTable &Table,
1265 return MatchTable::NamedValue(getTy().getCxxEnumValue()); in getValue()
1266 return MatchTable::NamedValue(getTy().getCxxEnumValue(), VI->second); in getValue()
1276 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1278 Table << MatchTable::Opcode("GIM_CheckType") << MatchTable::Comment("MI") in emitPredicateOpcodes()
1279 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op") in emitPredicateOpcodes()
1280 << MatchTable::IntValue(OpIdx) << MatchTable::Comment("Type") in emitPredicateOpcodes()
1281 << getValue() << MatchTable::LineBreak; in emitPredicateOpcodes()
1316 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1318 Table << MatchTable::Opcode("GIM_CheckPointerToAny") in emitPredicateOpcodes()
1319 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1320 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1321 << MatchTable::Comment("SizeInBits") in emitPredicateOpcodes()
1322 << MatchTable::IntValue(SizeInBits) << MatchTable::LineBreak; in emitPredicateOpcodes()
1350 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1352 Table << MatchTable::Opcode("GIM_RecordNamedOperand") in emitPredicateOpcodes()
1353 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1354 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1355 << MatchTable::Comment("StoreIdx") << MatchTable::IntValue(StoreIdx) in emitPredicateOpcodes()
1356 << MatchTable::Comment("Name : " + Name) << MatchTable::LineBreak; in emitPredicateOpcodes()
1381 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1384 Table << MatchTable::Opcode("GIM_CheckComplexPattern") in emitPredicateOpcodes()
1385 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1386 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1387 << MatchTable::Comment("Renderer") << MatchTable::IntValue(ID) in emitPredicateOpcodes()
1388 << MatchTable::NamedValue(("GICP_" + TheDef.getName()).str()) in emitPredicateOpcodes()
1389 << MatchTable::LineBreak; in emitPredicateOpcodes()
1416 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1418 Table << MatchTable::Opcode("GIM_CheckRegBankForClass") in emitPredicateOpcodes()
1419 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1420 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1421 << MatchTable::Comment("RC") in emitPredicateOpcodes()
1422 << MatchTable::NamedValue(RC.getQualifiedName() + "RegClassID") in emitPredicateOpcodes()
1423 << MatchTable::LineBreak; in emitPredicateOpcodes()
1437 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1439 Table << MatchTable::Opcode("GIM_CheckIsMBB") << MatchTable::Comment("MI") in emitPredicateOpcodes()
1440 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op") in emitPredicateOpcodes()
1441 << MatchTable::IntValue(OpIdx) << MatchTable::LineBreak; in emitPredicateOpcodes()
1454 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1456 Table << MatchTable::Opcode("GIM_CheckIsImm") << MatchTable::Comment("MI") in emitPredicateOpcodes()
1457 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op") in emitPredicateOpcodes()
1458 << MatchTable::IntValue(OpIdx) << MatchTable::LineBreak; in emitPredicateOpcodes()
1481 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1483 Table << MatchTable::Opcode("GIM_CheckConstantInt") in emitPredicateOpcodes()
1484 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1485 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1486 << MatchTable::IntValue(Value) << MatchTable::LineBreak; in emitPredicateOpcodes()
1510 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1512 Table << MatchTable::Opcode("GIM_CheckLiteralInt") in emitPredicateOpcodes()
1513 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1514 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1515 << MatchTable::IntValue(Value) << MatchTable::LineBreak; in emitPredicateOpcodes()
1538 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1540 Table << MatchTable::Opcode("GIM_CheckCmpPredicate") in emitPredicateOpcodes()
1541 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1542 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1543 << MatchTable::Comment("Predicate") in emitPredicateOpcodes()
1544 << MatchTable::NamedValue("CmpInst", PredName) in emitPredicateOpcodes()
1545 << MatchTable::LineBreak; in emitPredicateOpcodes()
1568 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1570 Table << MatchTable::Opcode("GIM_CheckIntrinsicID") in emitPredicateOpcodes()
1571 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1572 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1573 << MatchTable::NamedValue("Intrinsic::" + II->EnumName) in emitPredicateOpcodes()
1574 << MatchTable::LineBreak; in emitPredicateOpcodes()
1601 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1603 Table << MatchTable::Opcode("GIM_CheckImmOperandPredicate") in emitPredicateOpcodes()
1604 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1605 << MatchTable::Comment("MO") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
1606 << MatchTable::Comment("Predicate") in emitPredicateOpcodes()
1607 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1608 << MatchTable::LineBreak; in emitPredicateOpcodes()
1664 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
1673 Table << MatchTable::Comment(CommentOS.str()) << MatchTable::LineBreak; in emitPredicateOpcodes()
1792 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName(), in getInstValue()
1794 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName()); in getInstValue()
1835 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName(), in getValue()
1837 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName()); in getValue()
1840 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1844 Table << MatchTable::Opcode(CheckType) << MatchTable::Comment("MI") in emitPredicateOpcodes()
1845 << MatchTable::IntValue(InsnVarID); in emitPredicateOpcodes()
1849 Table << MatchTable::LineBreak; in emitPredicateOpcodes()
1916 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1918 Table << MatchTable::Opcode("GIM_CheckNumOperands") in emitPredicateOpcodes()
1919 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1920 << MatchTable::Comment("Expected") in emitPredicateOpcodes()
1921 << MatchTable::IntValue(NumOperands) << MatchTable::LineBreak; in emitPredicateOpcodes()
1972 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
1974 Table << MatchTable::Opcode(getMatchOpcodeForImmPredicate(Predicate)) in emitPredicateOpcodes()
1975 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
1976 << MatchTable::Comment("Predicate") in emitPredicateOpcodes()
1977 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
1978 << MatchTable::LineBreak; in emitPredicateOpcodes()
2013 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2022 Table << MatchTable::Opcode(Opcode) << MatchTable::Comment("MI") in emitPredicateOpcodes()
2023 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Order") in emitPredicateOpcodes()
2024 << MatchTable::NamedValue(("(int64_t)AtomicOrdering::" + Order).str()) in emitPredicateOpcodes()
2025 << MatchTable::LineBreak; in emitPredicateOpcodes()
2049 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2051 Table << MatchTable::Opcode("GIM_CheckMemorySizeEqualTo") in emitPredicateOpcodes()
2052 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
2053 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx) in emitPredicateOpcodes()
2054 << MatchTable::Comment("Size") << MatchTable::IntValue(Size) in emitPredicateOpcodes()
2055 << MatchTable::LineBreak; in emitPredicateOpcodes()
2080 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2082 Table << MatchTable::Opcode("GIM_CheckMemoryAddressSpace") in emitPredicateOpcodes()
2083 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
2084 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx) in emitPredicateOpcodes()
2086 << MatchTable::Comment("NumAddrSpace") in emitPredicateOpcodes()
2087 << MatchTable::IntValue(AddrSpaces.size()); in emitPredicateOpcodes()
2089 Table << MatchTable::Comment("AddrSpace") << MatchTable::IntValue(AS); in emitPredicateOpcodes()
2091 Table << MatchTable::LineBreak; in emitPredicateOpcodes()
2119 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2121 Table << MatchTable::Opcode("GIM_CheckMemoryAlignment") in emitPredicateOpcodes()
2122 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
2123 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx) in emitPredicateOpcodes()
2124 << MatchTable::Comment("MinAlign") << MatchTable::IntValue(MinAlign) in emitPredicateOpcodes()
2125 << MatchTable::LineBreak; in emitPredicateOpcodes()
2161 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2163 Table << MatchTable::Opcode(Relation == EqualTo in emitPredicateOpcodes()
2168 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
2169 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx) in emitPredicateOpcodes()
2170 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
2171 << MatchTable::LineBreak; in emitPredicateOpcodes()
2199 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2202 Table << MatchTable::Opcode("GIM_CheckIsBuildVectorAllOnes"); in emitPredicateOpcodes()
2204 Table << MatchTable::Opcode("GIM_CheckIsBuildVectorAllZeros"); in emitPredicateOpcodes()
2206 Table << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID); in emitPredicateOpcodes()
2207 Table << MatchTable::LineBreak; in emitPredicateOpcodes()
2231 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2233 Table << MatchTable::Opcode("GIM_CheckCxxInsnPredicate") in emitPredicateOpcodes()
2234 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
2235 << MatchTable::Comment("FnId") in emitPredicateOpcodes()
2236 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate)) in emitPredicateOpcodes()
2237 << MatchTable::LineBreak; in emitPredicateOpcodes()
2342 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) { in emitPredicateOpcodes()
2469 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const { in emitCaptureOpcodes()
2471 Table << MatchTable::Opcode("GIM_RecordInsn") in emitCaptureOpcodes()
2472 << MatchTable::Comment("DefineMI") in emitCaptureOpcodes()
2473 << MatchTable::IntValue(NewInsnVarID) << MatchTable::Comment("MI") in emitCaptureOpcodes()
2474 << MatchTable::IntValue(getInsnVarID()) in emitCaptureOpcodes()
2475 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(getOpIdx()) in emitCaptureOpcodes()
2476 << MatchTable::Comment("MIs[" + llvm::to_string(NewInsnVarID) + "]") in emitCaptureOpcodes()
2477 << MatchTable::LineBreak; in emitCaptureOpcodes()
2480 void emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
2564 virtual void emitRenderOpcodes(MatchTable &Table,
2589 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2592 Table << MatchTable::Opcode("GIR_Copy") << MatchTable::Comment("NewInsnID") in emitRenderOpcodes()
2593 << MatchTable::IntValue(NewInsnID) << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2594 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx") in emitRenderOpcodes()
2595 << MatchTable::IntValue(Operand.getOpIdx()) in emitRenderOpcodes()
2596 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2620 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2623 Table << MatchTable::Opcode("GIR_Copy") << MatchTable::Comment("NewInsnID") in emitRenderOpcodes()
2624 << MatchTable::IntValue(NewInsnID) << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2625 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx") in emitRenderOpcodes()
2626 << MatchTable::IntValue(Operand.getOpIdx()) in emitRenderOpcodes()
2627 << MatchTable::Comment(PhysReg->getName()) in emitRenderOpcodes()
2628 << MatchTable::LineBreak; in emitRenderOpcodes()
2656 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2659 Table << MatchTable::Opcode("GIR_CopyOrAddZeroReg") in emitRenderOpcodes()
2660 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID) in emitRenderOpcodes()
2661 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2662 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx") in emitRenderOpcodes()
2663 << MatchTable::IntValue(Operand.getOpIdx()) in emitRenderOpcodes()
2664 << MatchTable::NamedValue( in emitRenderOpcodes()
2669 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2693 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2696 Table << MatchTable::Opcode(Signed ? "GIR_CopyConstantAsSImm" in emitRenderOpcodes()
2698 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID) in emitRenderOpcodes()
2699 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2700 << MatchTable::IntValue(OldInsnVarID) in emitRenderOpcodes()
2701 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2724 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2727 Table << MatchTable::Opcode("GIR_CopyFConstantAsFPImm") in emitRenderOpcodes()
2728 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID) in emitRenderOpcodes()
2729 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2730 << MatchTable::IntValue(OldInsnVarID) in emitRenderOpcodes()
2731 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2758 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2761 Table << MatchTable::Opcode("GIR_CopySubReg") in emitRenderOpcodes()
2762 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID) in emitRenderOpcodes()
2763 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2764 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx") in emitRenderOpcodes()
2765 << MatchTable::IntValue(Operand.getOpIdx()) in emitRenderOpcodes()
2766 << MatchTable::Comment("SubRegIdx") in emitRenderOpcodes()
2767 << MatchTable::IntValue(SubReg->EnumValue) in emitRenderOpcodes()
2768 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2791 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2792 Table << MatchTable::Opcode("GIR_AddRegister") in emitRenderOpcodes()
2793 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID); in emitRenderOpcodes()
2795 Table << MatchTable::NamedValue( in emitRenderOpcodes()
2801 Table << MatchTable::NamedValue(Target.getRegNamespace(), "NoRegister"); in emitRenderOpcodes()
2803 Table << MatchTable::Comment("AddRegisterRegFlags"); in emitRenderOpcodes()
2809 Table << MatchTable::NamedValue("RegState::Define"); in emitRenderOpcodes()
2811 Table << MatchTable::IntValue(0); in emitRenderOpcodes()
2812 Table << MatchTable::LineBreak; in emitRenderOpcodes()
2838 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2841 Table << MatchTable::Opcode("GIR_AddTempSubRegister"); in emitRenderOpcodes()
2843 Table << MatchTable::Opcode("GIR_AddTempRegister"); in emitRenderOpcodes()
2845 Table << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitRenderOpcodes()
2846 << MatchTable::Comment("TempRegID") << MatchTable::IntValue(TempRegID) in emitRenderOpcodes()
2847 << MatchTable::Comment("TempRegFlags"); in emitRenderOpcodes()
2854 Table << MatchTable::NamedValue(RegFlags); in emitRenderOpcodes()
2856 Table << MatchTable::IntValue(0); in emitRenderOpcodes()
2859 Table << MatchTable::NamedValue(SubRegIdx->getQualifiedName()); in emitRenderOpcodes()
2860 Table << MatchTable::LineBreak; in emitRenderOpcodes()
2878 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2879 Table << MatchTable::Opcode("GIR_AddImm") << MatchTable::Comment("InsnID") in emitRenderOpcodes()
2880 << MatchTable::IntValue(InsnID) << MatchTable::Comment("Imm") in emitRenderOpcodes()
2881 << MatchTable::IntValue(Imm) << MatchTable::LineBreak; in emitRenderOpcodes()
2899 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2900 Table << MatchTable::Opcode("GIR_AddImm") << MatchTable::Comment("InsnID") in emitRenderOpcodes()
2901 << MatchTable::IntValue(InsnID) << MatchTable::Comment("SubRegIndex") in emitRenderOpcodes()
2902 << MatchTable::IntValue(SubRegIdx->EnumValue) in emitRenderOpcodes()
2903 << MatchTable::LineBreak; in emitRenderOpcodes()
2938 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2939 Table << MatchTable::Opcode(SubOperand.hasValue() ? "GIR_ComplexSubOperandRenderer" in emitRenderOpcodes()
2941 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitRenderOpcodes()
2942 << MatchTable::Comment("RendererID") in emitRenderOpcodes()
2943 << MatchTable::IntValue(RendererID); in emitRenderOpcodes()
2945 Table << MatchTable::Comment("SubOperand") in emitRenderOpcodes()
2946 << MatchTable::IntValue(SubOperand.getValue()); in emitRenderOpcodes()
2947 Table << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2968 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
2971 Table << MatchTable::Opcode("GIR_CustomRenderer") in emitRenderOpcodes()
2972 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitRenderOpcodes()
2973 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
2974 << MatchTable::IntValue(OldInsnVarID) in emitRenderOpcodes()
2975 << MatchTable::Comment("Renderer") in emitRenderOpcodes()
2976 << MatchTable::NamedValue( in emitRenderOpcodes()
2978 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
2999 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitRenderOpcodes()
3001 Table << MatchTable::Opcode("GIR_CustomOperandRenderer") in emitRenderOpcodes()
3002 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitRenderOpcodes()
3003 << MatchTable::Comment("OldInsnID") in emitRenderOpcodes()
3004 << MatchTable::IntValue(OpdMatcher.getInsnVarID()) in emitRenderOpcodes()
3005 << MatchTable::Comment("OpIdx") in emitRenderOpcodes()
3006 << MatchTable::IntValue(OpdMatcher.getOpIdx()) in emitRenderOpcodes()
3007 << MatchTable::Comment("OperandRenderer") in emitRenderOpcodes()
3008 << MatchTable::NamedValue( in emitRenderOpcodes()
3010 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak; in emitRenderOpcodes()
3024 virtual void emitActionOpcodes(MatchTable &Table,
3036 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3037 Table << MatchTable::Comment(S) << MatchTable::LineBreak; in emitActionOpcodes()
3096 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3102 Table << MatchTable::Opcode("GIR_MutateOpcode") in emitActionOpcodes()
3103 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3104 << MatchTable::Comment("RecycleInsnID") in emitActionOpcodes()
3105 << MatchTable::IntValue(RecycleInsnID) in emitActionOpcodes()
3106 << MatchTable::Comment("Opcode") in emitActionOpcodes()
3107 << MatchTable::NamedValue(I->Namespace, I->TheDef->getName()) in emitActionOpcodes()
3108 << MatchTable::LineBreak; in emitActionOpcodes()
3115 Table << MatchTable::Opcode("GIR_AddImplicitDef") in emitActionOpcodes()
3116 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3117 << MatchTable::NamedValue(Namespace, Def->getName()) in emitActionOpcodes()
3118 << MatchTable::LineBreak; in emitActionOpcodes()
3124 Table << MatchTable::Opcode("GIR_AddImplicitUse") in emitActionOpcodes()
3125 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3126 << MatchTable::NamedValue(Namespace, Use->getName()) in emitActionOpcodes()
3127 << MatchTable::LineBreak; in emitActionOpcodes()
3136 Table << MatchTable::Opcode("GIR_BuildMI") << MatchTable::Comment("InsnID") in emitActionOpcodes()
3137 << MatchTable::IntValue(InsnID) << MatchTable::Comment("Opcode") in emitActionOpcodes()
3138 << MatchTable::NamedValue(I->Namespace, I->TheDef->getName()) in emitActionOpcodes()
3139 << MatchTable::LineBreak; in emitActionOpcodes()
3144 Table << MatchTable::Opcode("GIR_MergeMemOperands") in emitActionOpcodes()
3145 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3146 << MatchTable::Comment("MergeInsnID's"); in emitActionOpcodes()
3159 Table << MatchTable::IntValue(MergeInsnID); in emitActionOpcodes()
3160 Table << MatchTable::NamedValue("GIU_MergeMemOperands_EndOfList") in emitActionOpcodes()
3161 << MatchTable::LineBreak; in emitActionOpcodes()
3168 Table << MatchTable::Opcode("GIR_EraseFromParent") in emitActionOpcodes()
3169 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3170 << MatchTable::LineBreak; in emitActionOpcodes()
3182 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3183 Table << MatchTable::Opcode("GIR_ConstrainSelectedInstOperands") in emitActionOpcodes()
3184 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3185 << MatchTable::LineBreak; in emitActionOpcodes()
3201 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3202 Table << MatchTable::Opcode("GIR_ConstrainOperandRC") in emitActionOpcodes()
3203 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emitActionOpcodes()
3204 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx) in emitActionOpcodes()
3205 << MatchTable::NamedValue(RC.getQualifiedName() + "RegClassID") in emitActionOpcodes()
3206 << MatchTable::LineBreak; in emitActionOpcodes()
3223 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override { in emitActionOpcodes()
3224 Table << MatchTable::Opcode("GIR_MakeTempReg") in emitActionOpcodes()
3225 << MatchTable::Comment("TempRegID") << MatchTable::IntValue(TempRegID) in emitActionOpcodes()
3226 << MatchTable::Comment("TypeID") in emitActionOpcodes()
3227 << MatchTable::NamedValue(Ty.getCxxEnumValue()) in emitActionOpcodes()
3228 << MatchTable::LineBreak; in emitActionOpcodes()
3335 void RuleMatcher::emit(MatchTable &Table) { in emit()
3351 Table << MatchTable::Opcode("GIM_Try", +1) in emit()
3352 << MatchTable::Comment("On fail goto") in emit()
3353 << MatchTable::JumpTarget(LabelID) in emit()
3354 << MatchTable::Comment(("Rule ID " + Twine(RuleID) + " //").str()) in emit()
3355 << MatchTable::LineBreak; in emit()
3358 Table << MatchTable::Opcode("GIM_CheckFeatures") in emit()
3359 << MatchTable::NamedValue(getNameForFeatureBitset(RequiredFeatures)) in emit()
3360 << MatchTable::LineBreak; in emit()
3381 Table << MatchTable::Opcode("GIM_CheckIsSafeToFold") in emit()
3382 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID) in emit()
3383 << MatchTable::LineBreak; in emit()
3429 Table << MatchTable::Opcode("GIR_Coverage") << MatchTable::IntValue(RuleID) in emit()
3430 << MatchTable::LineBreak; in emit()
3432 Table << MatchTable::Comment(("GIR_Coverage, " + Twine(RuleID) + ",").str()) in emit()
3433 << MatchTable::LineBreak; in emit()
3435 Table << MatchTable::Opcode("GIR_Done", -1) << MatchTable::LineBreak in emit()
3436 << MatchTable::Label(LabelID); in emit()
3497 void SameOperandMatcher::emitPredicateOpcodes(MatchTable &Table, in emitPredicateOpcodes()
3503 Table << MatchTable::Opcode("GIM_CheckIsSameOperand") in emitPredicateOpcodes()
3504 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID) in emitPredicateOpcodes()
3505 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(OpIdx) in emitPredicateOpcodes()
3506 << MatchTable::Comment("OtherMI") in emitPredicateOpcodes()
3507 << MatchTable::IntValue(OtherInsnVarID) in emitPredicateOpcodes()
3508 << MatchTable::Comment("OtherOpIdx") in emitPredicateOpcodes()
3509 << MatchTable::IntValue(OtherOM.getOpIdx()) in emitPredicateOpcodes()
3510 << MatchTable::LineBreak; in emitPredicateOpcodes()
3644 MatchTable buildMatchTable(MutableArrayRef<RuleMatcher> Rules, bool Optimize,
5540 MatchTable
5548 return MatchTable::buildTable(InputRules, WithCoverage); in buildMatchTable()
5579 return MatchTable::buildTable(OptRules, WithCoverage); in buildMatchTable()
5915 const MatchTable Table = in run()
6084 void GroupMatcher::emit(MatchTable &Table) { in emit()
6088 Table << MatchTable::Opcode("GIM_Try", +1) in emit()
6089 << MatchTable::Comment("On fail goto") in emit()
6090 << MatchTable::JumpTarget(LabelID) << MatchTable::LineBreak; in emit()
6101 Table << MatchTable::Opcode("GIM_Reject", -1) << MatchTable::LineBreak in emit()
6102 << MatchTable::Label(LabelID); in emit()
6173 MatchTable &Table) { in emitPredicateSpecificOpcodes()
6177 Table << MatchTable::Opcode("GIM_SwitchOpcode") << MatchTable::Comment("MI") in emitPredicateSpecificOpcodes()
6178 << MatchTable::IntValue(Condition->getInsnVarID()); in emitPredicateSpecificOpcodes()
6182 Table << MatchTable::Opcode("GIM_SwitchType") << MatchTable::Comment("MI") in emitPredicateSpecificOpcodes()
6183 << MatchTable::IntValue(Condition->getInsnVarID()) in emitPredicateSpecificOpcodes()
6184 << MatchTable::Comment("Op") in emitPredicateSpecificOpcodes()
6185 << MatchTable::IntValue(Condition->getOpIdx()); in emitPredicateSpecificOpcodes()
6193 void SwitchMatcher::emit(MatchTable &Table) { in emit()
6210 Table << MatchTable::Comment("[") << MatchTable::IntValue(LowerBound) in emit()
6211 << MatchTable::IntValue(UpperBound) << MatchTable::Comment(")") in emit()
6212 << MatchTable::Comment("default:") << MatchTable::JumpTarget(Default); in emit()
6219 Table << MatchTable::IntValue(0); in emit()
6221 Table << MatchTable::LineBreak << V << MatchTable::JumpTarget(LabelIDs[I]); in emit()
6223 Table << MatchTable::LineBreak; in emit()
6226 Table << MatchTable::Label(LabelIDs[I]); in emit()
6228 Table << MatchTable::Opcode("GIM_Reject") << MatchTable::LineBreak; in emit()
6230 Table << MatchTable::Label(Default); in emit()