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

Lines Matching refs:Leaf

39   for (const auto &Leaf : PossibleLeaves) {
40 OS << Separator << Leaf.getName();
42 if (!Leaf.isFullyTraversed())
44 if (!Leaf.isFullyTested())
52 for (const GIMatchTreeLeafInfo &Leaf : PossibleLeaves) {
53 if (Leaf.isFullyTested())
55 OS << "\\n" << Leaf.getName() << ": " << &Leaf;
56 for (const GIMatchDagPredicate *P : Leaf.untested_predicates())
221 for (const auto &Leaf : Leaves) {
222 LLVM_DEBUG(dbgs() << " " << Leaf.getName() << " (" << &Leaf.getInfo() << "\n");
223 TreeNode->addPossibleLeaf(Leaf.getInfo(), Leaf.isFullyTraversed(),
224 Leaf.isFullyTested());
246 PrintError("Leaf " + LeafI->getName() + " is unreachable");
247 PrintNote("Leaf " + FullyTestedLeafI->getName() +
265 LLVM_DEBUG(dbgs() << "Leaf contains multiple rules, drop after the first "
277 for (auto &Leaf : make_range(Leaves.begin(), FirstFullyTested))
278 LLVM_DEBUG(dbgs() << " Kept " << Leaf.getName() << "\n");
279 for (const auto &Leaf : make_range(FirstFullyTested, Leaves.end()))
280 LLVM_DEBUG(dbgs() << " Dropped " << Leaf.getName() << "\n");
285 for (const auto &Leaf : Leaves) {
286 if (!Leaf.isFullyTraversed()) {
287 PrintError("Leaf " + Leaf.getName() + " is not fully traversed");
289 Leaf.dump(errs());
290 for (unsigned InstrIdx : Leaf.untested_instrs())
291 PrintNote("Instr " + llvm::to_string(*Leaf.getInstr(InstrIdx)));
292 for (unsigned EdgeIdx : Leaf.untested_edges())
293 PrintNote("Edge " + llvm::to_string(*Leaf.getEdge(EdgeIdx)));
363 for (auto &Leaf : Leaves) {
364 LLVM_DEBUG(Leaf.getMatchDag().writeDOTGraph(dbgs(), Leaf.getName()));
366 *(Leaf.getMatchDag().roots().begin() + Leaf.getRootIdx());
367 Leaf.declareInstr(Root, NewInstrID);
395 for (const auto &Leaf : enumerate(Leaves)) {
397 GIMatchTreeInstrInfo *InstrInfo = Leaf.value().getInstrInfo(InstrID);
399 Leaf.value().getMatchDag().getNumPredicates());
405 LLVM_DEBUG(dbgs() << " " << Leaf.value().getName()
407 assert(TestedPredicatesForLeaf.size() == Leaf.value().getMatchDag().getNumPredicates());
414 for (unsigned PIdx : Leaf.value().TestablePredicates.set_bits()) {
415 const auto &P = Leaf.value().getPredicate(PIdx);
421 for (const auto &PDep : Leaf.value().getMatchDag().predicate_edges()) {
444 for (const auto &PDep : Leaf.value().getMatchDag().predicate_edges()) {
479 Partitions.find(Partition->second)->second.set(Leaf.index());
481 LLVM_DEBUG(dbgs() << " " << Leaf.value().getName()
498 LLVM_DEBUG(dbgs() << " " << Leaf.value().getName()
501 Partition.second.set(Leaf.index());
504 assert(TestedPredicatesForLeaf.size() == Leaf.value().getMatchDag().getNumPredicates());
518 for (const auto &Leaf : enumerate(Leaves)) {
519 GIMatchTreeInstrInfo *InstrInfo = Leaf.value().getInstrInfo(InstrID);
528 Partition.second.set(Leaf.index());
545 auto &Leaf = EnumeratedLeaf.value();
550 LLVM_DEBUG(dbgs() << " " << Leaf.getName() << " tested predicate #"
552 << " " << *Leaf.getPredicate(PredIdx) << "\n");
553 Leaf.RemainingPredicates.reset(PredIdx);
554 Leaf.TestablePredicates.reset(PredIdx);
556 SubBuilder.addLeaf(Leaf);
570 for (auto &Leaf : NewLeaves) {
571 GIMatchTreeInstrInfo *InstrInfo = Leaf.getInstrInfo(InstrID);
576 for (auto &E : enumerate(Leaf.getMatchDag().edges())) {
584 for (auto &Leaf : NewLeaves) {
586 Leaf.declareOperand(InstrID, OpIdx);
650 for (const auto &Leaf : enumerate(Leaves)) {
651 GIMatchTreeInstrInfo *InstrInfo = Leaf.value().getInstrInfo(InstrID);
652 BitVector TraversedEdgesForLeaf(Leaf.value().getMatchDag().getNumEdges());
665 for (unsigned EIdx : Leaf.value().TraversableEdges.set_bits()) {
666 const auto &E = Leaf.value().getEdge(EIdx);
673 addToPartition(true, Leaf.index());
682 addToPartition(false, Leaf.index());
686 addToPartition(false, Leaf.index());
687 addToPartition(true, Leaf.index());
694 for (const auto &Leaf : enumerate(Leaves)) {
695 GIMatchTreeInstrInfo *InstrInfo = Leaf.value().getInstrInfo(InstrID);
698 Partition.second.set(Leaf.index());
713 auto &Leaf = EnumeratedLeaf.value();
716 Leaf.RemainingEdges.reset(TraversedEdgesForLeaf);
717 Leaf.TraversableEdges.reset(TraversedEdgesForLeaf);
718 SubBuilder.addLeaf(Leaf);
729 auto &Leaf = std::get<0>(I);
731 GIMatchTreeInstrInfo *InstrInfo = Leaf.getInstrInfo(InstrID);
736 const GIMatchDagEdge *E = Leaf.getEdge(EIdx);
737 Leaf.declareInstr(E->getToMI(), NewInstrID);