Lines Matching refs:Rule
329 StringRef makeNameForAnonInstr(CombineRule &Rule) { in makeNameForAnonInstr() argument
331 format("__anon%" PRIu64 "_%u", Rule.getID(), Rule.allocUID()))); in makeNameForAnonInstr()
334 StringRef makeDebugName(CombineRule &Rule, StringRef Name) { in makeDebugName() argument
335 return insertStrTab(Name.empty() ? makeNameForAnonInstr(Rule) : StringRef(Name)); in makeDebugName()
338 StringRef makeNameForAnonPredicate(CombineRule &Rule) { in makeNameForAnonPredicate() argument
340 format("__anonpred%" PRIu64 "_%u", Rule.getID(), Rule.allocUID()))); in makeNameForAnonPredicate()
656 std::unique_ptr<CombineRule> Rule = in makeCombineRule() local
659 if (!Rule->parseDefs()) in makeCombineRule()
661 if (!Rule->parseMatcher(Target)) in makeCombineRule()
664 Rule->reorientToRoots(); in makeCombineRule()
667 dbgs() << "Parsed rule defs/match for '" << Rule->getName() << "'\n"; in makeCombineRule()
668 Rule->getMatchDag().dump(); in makeCombineRule()
669 Rule->getMatchDag().writeDOTGraph(dbgs(), Rule->getName()); in makeCombineRule()
672 return Rule; in makeCombineRule()
677 for (const auto &E : Rule->getMatchDag().edges()) { in makeCombineRule()
695 if (Rule->getNumRoots() > 1) { in makeCombineRule()
699 return Rule; in makeCombineRule()
708 std::unique_ptr<CombineRule> Rule = makeCombineRule(*R); in gatherRules() local
709 if (Rule == nullptr) { in gatherRules()
713 ActiveRules.emplace_back(std::move(Rule)); in gatherRules()
738 const CombineRule *Rule = Leaf.getTargetData<CombineRule>(); in generateCodeForTree() local
739 const Record &RuleDef = Rule->getDef(); in generateCodeForTree()
742 << Indent << "if (!RuleConfig->isRuleDisabled(" << Rule->getID() in generateCodeForTree()
756 Rule->declareExpansions(Expansions); in generateCodeForTree()
790 if (Rule->getMatchingFixupCode() && in generateCodeForTree()
791 !Rule->getMatchingFixupCode()->getValue().empty()) { in generateCodeForTree()
801 << CodeExpander(Rule->getMatchingFixupCode()->getValue(), Expansions, in generateCodeForTree()
829 (!Rule->getMatchingFixupCode() || in generateCodeForTree()
830 Rule->getMatchingFixupCode()->getValue().empty())) { in generateCodeForTree()
864 for (const auto &Rule : Rules) { in run() local
866 for (const auto &Root : enumerate(Rule->getMatchDag().roots())) { in run()
867 TreeBuilder.addLeaf(Rule->getName(), Root.index(), Rule->getMatchDag(), in run()
868 Rule.get()); in run()
872 PrintFatalError(Rule->getDef().getLoc(), "All rules must have a root"); in run()
1023 for (const auto &Rule : Rules) in run() local
1024 for (const auto &I : Rule->matchdata_decls()) in run()