• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/utils/TableGen/

Lines Matching defs:MatchTable

392 //===- MatchTable Helpers -------------------------------------------------===//
394 class MatchTable;
396 /// A record to be stored in a MatchTable.
399 /// MatchTable. Instances are most often configured to represent an opcode or
433 /// The number of MatchTable elements described by this record. Comments are 0
435 /// values that exceed the size of a MatchTable element.
472 const MatchTable &Table) const;
478 /// Holds the contents of a generated MatchTable to enable formatting and the
480 class MatchTable {
482 /// MatchTable${ID}.
491 /// A unique identifier for a MatchTable label.
546 static MatchTable buildTable(ArrayRef<Matcher *> Rules, bool WithCoverage);
548 MatchTable(bool WithCoverage, unsigned ID = 0)
572 void emitUse(raw_ostream &OS) const { OS << "MatchTable" << ID; }
576 OS << " constexpr static int64_t MatchTable" << ID << "[] = {";
605 MatchTableRecord MatchTable::LineBreak = {
610 const MatchTable &Table) const {
642 MatchTable &operator<<(MatchTable &Table, const MatchTableRecord &Value) {
658 virtual void emit(MatchTable &Table) = 0;
665 MatchTable MatchTable::buildTable(ArrayRef<Matcher *> Rules,
667 MatchTable Table(WithCoverage);
671 return Table << MatchTable::Opcode("GIM_Reject") << MatchTable::LineBreak;
714 void emit(MatchTable &Table) override;
769 void emit(MatchTable &Table) override;
796 MatchTable &Table);
946 void emit(MatchTable &Table) override;
1035 /// Emit MatchTable opcodes that tests whether all the predicates are met.
1037 void emitPredicateListOpcodes(MatchTable &Table, Args &&... args) {
1039 Table << MatchTable::Comment(getNoPredicateComment())
1040 << MatchTable::LineBreak;
1098 /// Emit MatchTable opcodes that check the predicate for the given operand.
1099 virtual void emitPredicateOpcodes(MatchTable &Table,
1163 void emitPredicateOpcodes(MatchTable &Table,
1203 return MatchTable::NamedValue(getTy().getCxxEnumValue());
1204 return MatchTable::NamedValue(getTy().getCxxEnumValue(), VI->second);
1214 void emitPredicateOpcodes(MatchTable &Table,
1216 Table << MatchTable::Opcode("GIM_CheckType") << MatchTable::Comment("MI")
1217 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op")
1218 << MatchTable::IntValue(OpIdx) << MatchTable::Comment("Type")
1219 << getValue() << MatchTable::LineBreak;
1249 void emitPredicateOpcodes(MatchTable &Table,
1251 Table << MatchTable::Opcode("GIM_CheckPointerToAny")
1252 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1253 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1254 << MatchTable::Comment("SizeInBits")
1255 << MatchTable::IntValue(SizeInBits) << MatchTable::LineBreak;
1280 void emitPredicateOpcodes(MatchTable &Table,
1283 Table << MatchTable::Opcode("GIM_CheckComplexPattern")
1284 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1285 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1286 << MatchTable::Comment("Renderer") << MatchTable::IntValue(ID)
1287 << MatchTable::NamedValue(("GICP_" + TheDef.getName()).str())
1288 << MatchTable::LineBreak;
1315 void emitPredicateOpcodes(MatchTable &Table,
1317 Table << MatchTable::Opcode("GIM_CheckRegBankForClass")
1318 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1319 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1320 << MatchTable::Comment("RC")
1321 << MatchTable::NamedValue(RC.getQualifiedName() + "RegClassID")
1322 << MatchTable::LineBreak;
1336 void emitPredicateOpcodes(MatchTable &Table,
1338 Table << MatchTable::Opcode("GIM_CheckIsMBB") << MatchTable::Comment("MI")
1339 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op")
1340 << MatchTable::IntValue(OpIdx) << MatchTable::LineBreak;
1353 void emitPredicateOpcodes(MatchTable &Table,
1355 Table << MatchTable::Opcode("GIM_CheckIsImm") << MatchTable::Comment("MI")
1356 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Op")
1357 << MatchTable::IntValue(OpIdx) << MatchTable::LineBreak;
1380 void emitPredicateOpcodes(MatchTable &Table,
1382 Table << MatchTable::Opcode("GIM_CheckConstantInt")
1383 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1384 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1385 << MatchTable::IntValue(Value) << MatchTable::LineBreak;
1409 void emitPredicateOpcodes(MatchTable &Table,
1411 Table << MatchTable::Opcode("GIM_CheckLiteralInt")
1412 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1413 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1414 << MatchTable::IntValue(Value) << MatchTable::LineBreak;
1437 void emitPredicateOpcodes(MatchTable &Table,
1439 Table << MatchTable::Opcode("GIM_CheckCmpPredicate")
1440 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1441 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1442 << MatchTable::Comment("Predicate")
1443 << MatchTable::NamedValue("CmpInst", PredName)
1444 << MatchTable::LineBreak;
1467 void emitPredicateOpcodes(MatchTable &Table,
1469 Table << MatchTable::Opcode("GIM_CheckIntrinsicID")
1470 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1471 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
1472 << MatchTable::NamedValue("Intrinsic::" + II->EnumName)
1473 << MatchTable::LineBreak;
1527 /// Emit MatchTable opcodes that test whether the instruction named in
1529 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) {
1538 Table << MatchTable::Comment(CommentOS.str()) << MatchTable::LineBreak;
1672 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName(),
1674 return MatchTable::NamedValue(I->Namespace, I->TheDef->getName());
1678 void emitPredicateOpcodes(MatchTable &Table,
1680 Table << MatchTable::Opcode("GIM_CheckOpcode") << MatchTable::Comment("MI")
1681 << MatchTable::IntValue(InsnVarID) << getValue()
1682 << MatchTable::LineBreak;
1737 void emitPredicateOpcodes(MatchTable &Table,
1739 Table << MatchTable::Opcode("GIM_CheckNumOperands")
1740 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1741 << MatchTable::Comment("Expected")
1742 << MatchTable::IntValue(NumOperands) << MatchTable::LineBreak;
1793 void emitPredicateOpcodes(MatchTable &Table,
1795 Table << MatchTable::Opcode(getMatchOpcodeForPredicate(Predicate))
1796 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1797 << MatchTable::Comment("Predicate")
1798 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate))
1799 << MatchTable::LineBreak;
1834 void emitPredicateOpcodes(MatchTable &Table,
1843 Table << MatchTable::Opcode(Opcode) << MatchTable::Comment("MI")
1844 << MatchTable::IntValue(InsnVarID) << MatchTable::Comment("Order")
1845 << MatchTable::NamedValue(("(int64_t)AtomicOrdering::" + Order).str())
1846 << MatchTable::LineBreak;
1870 void emitPredicateOpcodes(MatchTable &Table,
1872 Table << MatchTable::Opcode("GIM_CheckMemorySizeEqualTo")
1873 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1874 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx)
1875 << MatchTable::Comment("Size") << MatchTable::IntValue(Size)
1876 << MatchTable::LineBreak;
1901 void emitPredicateOpcodes(MatchTable &Table,
1903 Table << MatchTable::Opcode("GIM_CheckMemoryAddressSpace")
1904 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1905 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx)
1907 << MatchTable::Comment("NumAddrSpace")
1908 << MatchTable::IntValue(AddrSpaces.size());
1910 Table << MatchTable::Comment("AddrSpace") << MatchTable::IntValue(AS);
1912 Table << MatchTable::LineBreak;
1940 void emitPredicateOpcodes(MatchTable &Table,
1942 Table << MatchTable::Opcode("GIM_CheckMemoryAlignment")
1943 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1944 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx)
1945 << MatchTable::Comment("MinAlign") << MatchTable::IntValue(MinAlign)
1946 << MatchTable::LineBreak;
1982 void emitPredicateOpcodes(MatchTable &Table,
1984 Table << MatchTable::Opcode(Relation == EqualTo
1989 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
1990 << MatchTable::Comment("MMO") << MatchTable::IntValue(MMOIdx)
1991 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(OpIdx)
1992 << MatchTable::LineBreak;
2016 void emitPredicateOpcodes(MatchTable &Table,
2018 Table << MatchTable::Opcode("GIM_CheckCxxInsnPredicate")
2019 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
2020 << MatchTable::Comment("FnId")
2021 << MatchTable::NamedValue(getEnumNameForPredicate(Predicate))
2022 << MatchTable::LineBreak;
2124 /// Emit MatchTable opcodes that test whether the instruction named in
2126 void emitPredicateOpcodes(MatchTable &Table, RuleMatcher &Rule) {
2239 void emitCaptureOpcodes(MatchTable &Table, RuleMatcher &Rule) const {
2241 Table << MatchTable::Opcode("GIM_RecordInsn")
2242 << MatchTable::Comment("DefineMI")
2243 << MatchTable::IntValue(NewInsnVarID) << MatchTable::Comment("MI")
2244 << MatchTable::IntValue(getInsnVarID())
2245 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(getOpIdx())
2246 << MatchTable::Comment("MIs[" + llvm::to_string(NewInsnVarID) + "]")
2247 << MatchTable::LineBreak;
2250 void emitPredicateOpcodes(MatchTable &Table,
2334 virtual void emitRenderOpcodes(MatchTable &Table,
2359 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2362 Table << MatchTable::Opcode("GIR_Copy") << MatchTable::Comment("NewInsnID")
2363 << MatchTable::IntValue(NewInsnID) << MatchTable::Comment("OldInsnID")
2364 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx")
2365 << MatchTable::IntValue(Operand.getOpIdx())
2366 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2390 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2393 Table << MatchTable::Opcode("GIR_Copy") << MatchTable::Comment("NewInsnID")
2394 << MatchTable::IntValue(NewInsnID) << MatchTable::Comment("OldInsnID")
2395 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx")
2396 << MatchTable::IntValue(Operand.getOpIdx())
2397 << MatchTable::Comment(PhysReg->getName())
2398 << MatchTable::LineBreak;
2426 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2429 Table << MatchTable::Opcode("GIR_CopyOrAddZeroReg")
2430 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID)
2431 << MatchTable::Comment("OldInsnID")
2432 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx")
2433 << MatchTable::IntValue(Operand.getOpIdx())
2434 << MatchTable::NamedValue(
2439 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2463 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2466 Table << MatchTable::Opcode(Signed ? "GIR_CopyConstantAsSImm"
2468 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID)
2469 << MatchTable::Comment("OldInsnID")
2470 << MatchTable::IntValue(OldInsnVarID)
2471 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2494 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2497 Table << MatchTable::Opcode("GIR_CopyFConstantAsFPImm")
2498 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID)
2499 << MatchTable::Comment("OldInsnID")
2500 << MatchTable::IntValue(OldInsnVarID)
2501 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2528 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2531 Table << MatchTable::Opcode("GIR_CopySubReg")
2532 << MatchTable::Comment("NewInsnID") << MatchTable::IntValue(NewInsnID)
2533 << MatchTable::Comment("OldInsnID")
2534 << MatchTable::IntValue(OldInsnVarID) << MatchTable::Comment("OpIdx")
2535 << MatchTable::IntValue(Operand.getOpIdx())
2536 << MatchTable::Comment("SubRegIdx")
2537 << MatchTable::IntValue(SubReg->EnumValue)
2538 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2560 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2561 Table << MatchTable::Opcode("GIR_AddRegister")
2562 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2563 << MatchTable::NamedValue(
2568 << MatchTable::Comment("AddRegisterRegFlags");
2574 Table << MatchTable::NamedValue("RegState::Define");
2576 Table << MatchTable::IntValue(0);
2577 Table << MatchTable::LineBreak;
2599 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2600 Table << MatchTable::Opcode("GIR_AddTempRegister")
2601 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2602 << MatchTable::Comment("TempRegID") << MatchTable::IntValue(TempRegID)
2603 << MatchTable::Comment("TempRegFlags");
2605 Table << MatchTable::NamedValue("RegState::Define");
2607 Table << MatchTable::IntValue(0);
2608 Table << MatchTable::LineBreak;
2626 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2627 Table << MatchTable::Opcode("GIR_AddImm") << MatchTable::Comment("InsnID")
2628 << MatchTable::IntValue(InsnID) << MatchTable::Comment("Imm")
2629 << MatchTable::IntValue(Imm) << MatchTable::LineBreak;
2647 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2648 Table << MatchTable::Opcode("GIR_AddImm") << MatchTable::Comment("InsnID")
2649 << MatchTable::IntValue(InsnID) << MatchTable::Comment("SubRegIndex")
2650 << MatchTable::IntValue(SubRegIdx->EnumValue)
2651 << MatchTable::LineBreak;
2686 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2687 Table << MatchTable::Opcode(SubOperand.hasValue() ? "GIR_ComplexSubOperandRenderer"
2689 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2690 << MatchTable::Comment("RendererID")
2691 << MatchTable::IntValue(RendererID);
2693 Table << MatchTable::Comment("SubOperand")
2694 << MatchTable::IntValue(SubOperand.getValue());
2695 Table << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2716 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2719 Table << MatchTable::Opcode("GIR_CustomRenderer")
2720 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2721 << MatchTable::Comment("OldInsnID")
2722 << MatchTable::IntValue(OldInsnVarID)
2723 << MatchTable::Comment("Renderer")
2724 << MatchTable::NamedValue(
2726 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2747 void emitRenderOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2749 Table << MatchTable::Opcode("GIR_CustomOperandRenderer")
2750 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2751 << MatchTable::Comment("OldInsnID")
2752 << MatchTable::IntValue(OpdMatcher.getInsnVarID())
2753 << MatchTable::Comment("OpIdx")
2754 << MatchTable::IntValue(OpdMatcher.getOpIdx())
2755 << MatchTable::Comment("OperandRenderer")
2756 << MatchTable::NamedValue(
2758 << MatchTable::Comment(SymbolicName) << MatchTable::LineBreak;
2771 /// Emit the MatchTable opcodes to implement the action.
2772 virtual void emitActionOpcodes(MatchTable &Table,
2784 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2785 Table << MatchTable::Comment(S) << MatchTable::LineBreak;
2844 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2850 Table << MatchTable::Opcode("GIR_MutateOpcode")
2851 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2852 << MatchTable::Comment("RecycleInsnID")
2853 << MatchTable::IntValue(RecycleInsnID)
2854 << MatchTable::Comment("Opcode")
2855 << MatchTable::NamedValue(I->Namespace, I->TheDef->getName())
2856 << MatchTable::LineBreak;
2863 Table << MatchTable::Opcode("GIR_AddImplicitDef")
2864 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2865 << MatchTable::NamedValue(Namespace, Def->getName())
2866 << MatchTable::LineBreak;
2872 Table << MatchTable::Opcode("GIR_AddImplicitUse")
2873 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2874 << MatchTable::NamedValue(Namespace, Use->getName())
2875 << MatchTable::LineBreak;
2884 Table << MatchTable::Opcode("GIR_BuildMI") << MatchTable::Comment("InsnID")
2885 << MatchTable::IntValue(InsnID) << MatchTable::Comment("Opcode")
2886 << MatchTable::NamedValue(I->Namespace, I->TheDef->getName())
2887 << MatchTable::LineBreak;
2892 Table << MatchTable::Opcode("GIR_MergeMemOperands")
2893 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2894 << MatchTable::Comment("MergeInsnID's");
2907 Table << MatchTable::IntValue(MergeInsnID);
2908 Table << MatchTable::NamedValue("GIU_MergeMemOperands_EndOfList")
2909 << MatchTable::LineBreak;
2916 Table << MatchTable::Opcode("GIR_EraseFromParent")
2917 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2918 << MatchTable::LineBreak;
2930 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2931 Table << MatchTable::Opcode("GIR_ConstrainSelectedInstOperands")
2932 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2933 << MatchTable::LineBreak;
2949 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2950 Table << MatchTable::Opcode("GIR_ConstrainOperandRC")
2951 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
2952 << MatchTable::Comment("Op") << MatchTable::IntValue(OpIdx)
2953 << MatchTable::Comment("RC " + RC.getName())
2954 << MatchTable::IntValue(RC.EnumValue) << MatchTable::LineBreak;
2971 void emitActionOpcodes(MatchTable &Table, RuleMatcher &Rule) const override {
2972 Table << MatchTable::Opcode("GIR_MakeTempReg")
2973 << MatchTable::Comment("TempRegID") << MatchTable::IntValue(TempRegID)
2974 << MatchTable::Comment("TypeID")
2975 << MatchTable::NamedValue(Ty.getCxxEnumValue())
2976 << MatchTable::LineBreak;
3083 void RuleMatcher::emit(MatchTable &Table) {
3099 Table << MatchTable::Opcode("GIM_Try", +1)
3100 << MatchTable::Comment("On fail goto")
3101 << MatchTable::JumpTarget(LabelID)
3102 << MatchTable::Comment(("Rule ID " + Twine(RuleID) + " //").str())
3103 << MatchTable::LineBreak;
3106 Table << MatchTable::Opcode("GIM_CheckFeatures")
3107 << MatchTable::NamedValue(getNameForFeatureBitset(RequiredFeatures))
3108 << MatchTable::LineBreak;
3129 Table << MatchTable::Opcode("GIM_CheckIsSafeToFold")
3130 << MatchTable::Comment("InsnID") << MatchTable::IntValue(InsnID)
3131 << MatchTable::LineBreak;
3177 Table << MatchTable::Opcode("GIR_Coverage") << MatchTable::IntValue(RuleID)
3178 << MatchTable::LineBreak;
3180 Table << MatchTable::Comment(("GIR_Coverage, " + Twine(RuleID) + ",").str())
3181 << MatchTable::LineBreak;
3183 Table << MatchTable::Opcode("GIR_Done", -1) << MatchTable::LineBreak
3184 << MatchTable::Label(LabelID);
3245 void SameOperandMatcher::emitPredicateOpcodes(MatchTable &Table,
3251 Table << MatchTable::Opcode("GIM_CheckIsSameOperand")
3252 << MatchTable::Comment("MI") << MatchTable::IntValue(InsnVarID)
3253 << MatchTable::Comment("OpIdx") << MatchTable::IntValue(OpIdx)
3254 << MatchTable::Comment("OtherMI")
3255 << MatchTable::IntValue(OtherInsnVarID)
3256 << MatchTable::Comment("OtherOpIdx")
3257 << MatchTable::IntValue(OtherOM.getOpIdx())
3258 << MatchTable::LineBreak;
3361 MatchTable buildMatchTable(MutableArrayRef<RuleMatcher> Rules, bool Optimize,
5017 MatchTable
5025 return MatchTable::buildTable(InputRules, WithCoverage);
5058 return MatchTable::buildTable(OptRules, WithCoverage);
5395 const MatchTable Table =
5564 void GroupMatcher::emit(MatchTable &Table) {
5568 Table << MatchTable::Opcode("GIM_Try", +1)
5569 << MatchTable::Comment("On fail goto")
5570 << MatchTable::JumpTarget(LabelID) << MatchTable::LineBreak;
5581 Table << MatchTable::Opcode("GIM_Reject", -1) << MatchTable::LineBreak
5582 << MatchTable::Label(LabelID);
5654 MatchTable &Table) {
5658 Table << MatchTable::Opcode("GIM_SwitchOpcode") << MatchTable::Comment("MI")
5659 << MatchTable::IntValue(Condition->getInsnVarID());
5663 Table << MatchTable::Opcode("GIM_SwitchType") << MatchTable::Comment("MI")
5664 << MatchTable::IntValue(Condition->getInsnVarID())
5665 << MatchTable::Comment("Op")
5666 << MatchTable::IntValue(Condition->getOpIdx());
5674 void SwitchMatcher::emit(MatchTable &Table) {
5691 Table << MatchTable::Comment("[") << MatchTable::IntValue(LowerBound)
5692 << MatchTable::IntValue(UpperBound) << MatchTable::Comment(")")
5693 << MatchTable::Comment("default:") << MatchTable::JumpTarget(Default);
5700 Table << MatchTable::IntValue(0);
5702 Table << MatchTable::LineBreak << V << MatchTable::JumpTarget(LabelIDs[I]);
5704 Table << MatchTable::LineBreak;
5707 Table << MatchTable::Label(LabelIDs[I]);
5709 Table << MatchTable::Opcode("GIM_Reject") << MatchTable::LineBreak;
5711 Table << MatchTable::Label(Default);