HomeSort by: relevance | last modified time | path
    Searched refs:PredBB (Results 1 - 25 of 59) sorted by relevancy

1 2 3

  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/
MachineDominators.cpp 106 for (MachineBasicBlock *PredBB : Succ->predecessors()) {
107 if (PredBB == Edge.NewBB)
121 if (NewBBs.count(PredBB)) {
122 assert(PredBB->pred_size() == 1 && "A basic block resulting from a "
125 PredBB = *PredBB->pred_begin();
127 if (!DT->dominates(SuccDTNode, DT->getNode(PredBB))) {
TailDuplicator.cpp 111 for (MachineBasicBlock *PredBB : Preds) {
115 if (PHIBB == PredBB) {
124 << printMBBReference(*PredBB) << '\n';
345 /// Process PHI node in TailBB by turning it into a copy in PredBB. Remember the
346 /// source register that's contributed by PredBB and update SSA update map.
348 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
353 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB);
365 addSSAUpdateEntry(DefReg, NewDef, PredBB);
370 // Remove PredBB from the PHI node.
377 /// Duplicate a TailBB instruction to PredBB and updat
    [all...]
BranchFolding.h 136 MachineBasicBlock* PredBB,
163 MachineBasicBlock *PredBB);
168 MachineBasicBlock* PredBB);
172 bool CreateCommonTailOnlyBlock(MachineBasicBlock *&PredBB,
BranchFolding.cpp 535 /// PredBB The layout predecessor of SuccBB, if any.
544 MachineBasicBlock *PredBB,
582 if ((MBB1 == PredBB || MBB2 == PredBB) &&
585 unsigned NumTerms = CountTerminators(MBB1 == PredBB ? MBB2 : MBB1, I);
630 if (SuccBB && MBB1 != PredBB && MBB2 != PredBB &&
656 MachineBasicBlock *PredBB) {
669 SuccBB, PredBB,
691 MachineBasicBlock *PredBB) {
    [all...]
MachineSSAUpdater.cpp 167 for (MachineBasicBlock *PredBB : BB->predecessors()) {
168 Register PredVal = GetValueAtEndOfBlockInternal(PredBB);
169 PredValues.push_back(std::make_pair(PredBB, PredVal));
  /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
PHITransAddr.h 80 /// PredBB. This returns true on failure and sets Addr to null.
81 bool PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB,
91 Value *PHITranslateWithInsertion(BasicBlock *CurBB, BasicBlock *PredBB,
103 Value *PHITranslateSubExpr(Value *V, BasicBlock *CurBB, BasicBlock *PredBB,
107 /// version of 'V' for the edge PredBB->CurBB into the end of the PredBB
112 BasicBlock *PredBB, const DominatorTree &DT,
LoopInfoImpl.h 439 BlockT *PredBB = ReverseCFGWorklist.back();
442 LoopT *Subloop = LI->getLoopFor(PredBB);
444 if (!DomTree.isReachableFromEntry(PredBB))
448 LI->changeLoopFor(PredBB, L);
450 if (PredBB == L->getHeader())
454 InvBlockTraits::child_begin(PredBB),
455 InvBlockTraits::child_end(PredBB));
469 PredBB = Subloop->getHeader();
474 for (const auto Pred : children<Inverse<BlockT *>>(PredBB)) {
558 // If Header dominates predBB, this is a new loop. Collect the backedges
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Analysis/
PHITransAddr.cpp 144 BasicBlock *PredBB,
169 return AddAsInput(PN->getIncomingValueForBlock(PredBB));
189 Value *PHIIn = PHITranslateSubExpr(Cast->getOperand(0), CurBB, PredBB, DT);
207 (!DT || DT->dominates(CastI->getParent(), PredBB)))
218 Value *GEPOp = PHITranslateSubExpr(GEP->getOperand(i), CurBB, PredBB, DT);
244 (!DT || DT->dominates(GEPI->getParent(), PredBB))) {
260 Value *LHS = PHITranslateSubExpr(Inst->getOperand(0), CurBB, PredBB, DT);
296 (!DT || DT->dominates(BO->getParent(), PredBB)))
311 /// PredBB. This returns true on failure and sets Addr to null.
312 bool PHITransAddr::PHITranslateValue(BasicBlock *CurBB, BasicBlock *PredBB,
    [all...]
LoopNestAnalysis.cpp 224 const BasicBlock *PredBB = From;
228 PredBB = BB;
232 return (BB == End) ? *End : *PredBB;
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
JumpThreading.cpp 192 // [Block PredBB]
242 auto *PredBB = IncomingBB;
246 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator());
248 return {PredBB, SuccBB};
249 Visited.insert(PredBB);
250 auto *SinglePredBB = PredBB->getSinglePredecessor();
259 SuccBB = PredBB;
260 PredBB = SinglePredBB;
281 BasicBlock *PredBB = PredOutEdge.first;
282 BranchInst *PredBr = dyn_cast<BranchInst>(PredBB->getTerminator())
    [all...]
SpeculateAroundPHIs.cpp 576 for (auto *PredBB : PredSet) {
578 PredBB, ParentBB,
582 LLVM_DEBUG(dbgs() << " Split critical edge from: " << PredBB->getName()
586 assert(PredBB->getSingleSuccessor() == ParentBB &&
588 assert(!isa<InvokeInst>(PredBB->getTerminator()) &&
592 SpecPreds.push_back(PredBB);
653 for (auto *PredBB : SpecPreds)
654 SpeculatedVals.push_back(IncomingValueMap.find(PredBB)->second);
659 auto *PredBB = SpecPreds[PredIdx];
660 assert(PredBB->getSingleSuccessor() == ParentBB &
    [all...]
SimpleLoopUnswitch.cpp 1444 for (BasicBlock *PredBB : predecessors(BB)) {
1447 if (!UnloopedBlockSet.erase(PredBB)) {
1449 (BlocksInClonedLoop.count(PredBB) || ExitLoopMap.count(PredBB)) &&
1457 bool Inserted = ExitLoopMap.insert({PredBB, ExitL}).second;
1462 Worklist.push_back(PredBB);
1848 for (BasicBlock *PredBB : predecessors(BB)) {
1851 if (!UnloopedBlocks.erase(PredBB)) {
1852 assert((NewExitLoopBlocks.count(PredBB) ||
1853 ExitL.contains(LI.getLoopFor(PredBB))) &
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/
VPlanPredicator.h 49 /// \p PredBB to \p CurrentBlock.
50 VPValue *getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
VPlanPredicator.cpp 28 // predicate being propagated from PredBB to CurrBB depending on the edge type
30 // i. PredBB is controlled by predicate %BP, and
31 // ii. The edge PredBB->CurrBB is the false edge, controlled by the condition
37 VPValue *VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB,
39 VPValue *CBV = PredBB->getCondBit();
43 EdgeType ET = getEdgeTypeBetween(PredBB, CurrBB);
47 // CurrBB is the true successor of PredBB - nothing to do here.
52 // CurrBB is the False successor of PredBB - compute not of CBV.
57 // Now AND intermediate value with PredBB's block predicate if it has one.
58 VPValue *BP = PredBB->getPredicate()
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/
TailDuplicator.h 81 /// Returns true if TailBB can successfully be duplicated into PredBB
82 bool canTailDuplicate(MachineBasicBlock *TailBB, MachineBasicBlock *PredBB);
104 MachineBasicBlock *PredBB,
109 MachineBasicBlock *PredBB,
  /src/external/apache2/llvm/dist/llvm/lib/Target/XCore/
XCoreLowerThreadLocal.cpp 89 BasicBlock *PredBB = PN->getIncomingBlock(I);
90 if (PredBB->getTerminator()->getNumSuccessors() > 1)
91 PredBB = SplitEdge(PredBB, PN->getParent());
92 Instruction *InsertPos = PredBB->getTerminator();
  /src/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Scalar/
JumpThreading.h 122 BasicBlock *PredBB);
148 void threadThroughTwoBasicBlocks(BasicBlock *PredPredBB, BasicBlock *PredBB,
172 void updateBlockFreqAndEdgeWeight(BasicBlock *PredBB, BasicBlock *BB,
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/ObjCARC/
DependencyAnalysis.cpp 234 BasicBlock *PredBB = *PI;
235 if (Visited.insert(PredBB).second)
236 Worklist.push_back(std::make_pair(PredBB, PredBB->end()));
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
SSAUpdater.cpp 114 BasicBlock *PredBB = SomePhi->getIncomingBlock(i);
115 Value *PredVal = GetValueAtEndOfBlock(PredBB);
116 PredValues.push_back(std::make_pair(PredBB, PredVal));
126 for (BasicBlock *PredBB : predecessors(BB)) {
127 Value *PredVal = GetValueAtEndOfBlock(PredBB);
128 PredValues.push_back(std::make_pair(PredBB, PredVal));
BasicBlockUtils.cpp 181 BasicBlock *PredBB = BB->getUniquePredecessor();
182 if (!PredBB) return false;
185 if (PredBB == BB) return false;
187 if (PredBB->getTerminator()->isExceptionalTerminator())
191 if (!PredecessorWithTwoSuccessors && PredBB->getUniqueSuccessor() != BB)
194 // Currently only allow PredBB to have two predecessors, one being BB.
200 if (!(PredBB_BI = dyn_cast<BranchInst>(PredBB->getTerminator())))
215 << PredBB->getName() << "\n");
232 SmallPtrSet<BasicBlock *, 2> SuccsOfPredBB(succ_begin(PredBB),
233 succ_begin(PredBB));
    [all...]
BreakCriticalEdges.cpp 331 BasicBlock *PredBB = PN->getIncomingBlock(Pred);
332 Instruction *PredTerm = PredBB->getTerminator();
337 IBB = PredBB;
341 OtherPreds.push_back(PredBB);
CloneFunction.cpp 885 BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt,
888 assert(count(successors(PredBB), BB) == 1 &&
889 "There must be a single edge between PredBB and BB!");
892 // account for entry from PredBB.
895 ValueMapping[PN] = PN->getIncomingValueForBlock(PredBB);
897 BasicBlock *NewBB = SplitEdge(PredBB, BB);
898 NewBB->setName(PredBB->getName() + ".split");
903 DTU.applyUpdates({{DominatorTree::Delete, PredBB, BB},
904 {DominatorTree::Insert, PredBB, NewBB},
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
BlockExtractor.cpp 163 for (auto PredBB : predecessors(LPad)) {
164 if (PredBB->isLandingPad() && PredBB != Parent &&
HotColdSplitting.cpp 471 BasicBlock &PredBB = **PredIt;
472 bool SinkPostDom = PDT.dominates(&SinkBB, &PredBB);
476 if (SinkPostDom && pred_empty(&PredBB)) {
483 if (!SinkPostDom || !mayExtractBlock(PredBB)) {
491 unsigned PredScore = getEntryPointScore(PredBB, PredIt.getPathLength());
493 ColdRegion->SuggestedEntryPoint = &PredBB;
497 addBlockToRegion(&PredBB, PredScore);
  /src/external/apache2/llvm/dist/llvm/lib/IR/
BasicBlock.cpp 275 const BasicBlock *PredBB = *PI;
278 if (*PI != PredBB)
283 return PredBB;

Completed in 33 milliseconds

1 2 3