reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/EarlyIfConversion.cpp
  101   bool isTriangle() const { return TBB == Tail || FBB == Tail; }
  101   bool isTriangle() const { return TBB == Tail || FBB == Tail; }
  104   MachineBasicBlock *getTPred() const { return TBB == Tail ? Head : TBB; }
  107   MachineBasicBlock *getFPred() const { return FBB == Tail ? Head : FBB; }
  433   TBB = FBB = Tail = nullptr;
  447   Tail = Succ0->succ_begin()[0];
  450   if (Tail != Succ1) {
  453         Succ1->succ_begin()[0] != Tail)
  458                       << printMBBReference(*Tail) << '\n');
  461     if (!Tail->livein_empty()) {
  468                       << printMBBReference(*Tail) << '\n');
  474   if (!Predicate && (Tail->empty() || !Tail->front().isPHI())) {
  474   if (!Predicate && (Tail->empty() || !Tail->front().isPHI())) {
  507   for (MachineBasicBlock::iterator I = Tail->begin(), E = Tail->end();
  507   for (MachineBasicBlock::iterator I = Tail->begin(), E = Tail->end();
  533     if (TBB != Tail && !canPredicateInstrs(TBB))
  535     if (FBB != Tail && !canPredicateInstrs(FBB))
  538     if (TBB != Tail && !canSpeculateInstrs(TBB))
  540     if (FBB != Tail && !canSpeculateInstrs(FBB))
  560   assert(Tail->pred_size() == 2 && "Cannot replace PHIs");
  625   assert(Head && Tail && TBB && FBB && "Call canConvertIf first.");
  634   if (TBB != Tail) {
  639   if (FBB != Tail) {
  645   bool ExtraPreds = Tail->pred_size() != 2;
  654   if (TBB != Tail)
  655     TBB->removeSuccessor(Tail, true);
  656   if (FBB != Tail)
  657     FBB->removeSuccessor(Tail, true);
  666   if (TBB != Tail) {
  670   if (FBB != Tail) {
  676   if (!ExtraPreds && Head->isLayoutSuccessor(Tail)) {
  678     LLVM_DEBUG(dbgs() << "Joining tail " << printMBBReference(*Tail)
  680     Head->splice(Head->end(), Tail,
  681                      Tail->begin(), Tail->end());
  681                      Tail->begin(), Tail->end());
  682     Head->transferSuccessorsAndUpdatePHIs(Tail);
  683     RemovedBlocks.push_back(Tail);
  684     Tail->eraseFromParent();
  689     TII->insertBranch(*Head, Tail, nullptr, EmptyCond, HeadDL);
  690     Head->addSuccessor(Tail);
  759       assert(Node->getBlock() == IfConv.Tail && "Unexpected children");
  782   Traces->invalidate(IfConv.Tail);
  819   if (IfConv.TBB != IfConv.Tail)
  839   MachineTraceMetrics::Trace TailTrace = MinInstr->getTrace(IfConv.Tail);
  983         (IfConv.TBB == IfConv.Tail) ? *IfConv.FBB : *IfConv.TBB;