HomeSort by relevance Sort by last modified time
    Searched refs:Preheader (Results 1 - 25 of 29) sorted by null

1 2

  /external/llvm/include/llvm/Transforms/Scalar/
LoopDeletion.h 34 BasicBlock *Preheader);
  /external/llvm/lib/CodeGen/
MachineLICM.cpp 89 MachineBasicBlock *CurPreheader; // The preheader for CurLoop.
107 // Register pressure on path leading from loop preheader to current BB.
231 bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
304 // If this is done before regalloc, only visit outer-most preheader-sporting
437 /// preheader.
439 MachineBasicBlock *Preheader = getCurPreheader();
440 if (!Preheader)
474 MachineBasicBlock::iterator TI = Preheader->getFirstTerminator();
475 if (TI != Preheader->end()) {
542 MachineBasicBlock *Preheader = getCurPreheader()
    [all...]
  /external/llvm/lib/Transforms/Scalar/
InductiveRangeCheckElimination.cpp 518 // Rewrite the iteration space of the loop denoted by (LS, Preheader). The
536 // After changeIterationSpaceEnd, `Preheader' is no longer a legitimate
537 // preheader because it is made to branch to the loop header only
541 changeIterationSpaceEnd(const LoopStructure &LS, BasicBlock *Preheader,
545 // The loop denoted by `LS' has `OldPreheader' as its preheader. This
546 // function creates a new preheader for `LS' and returns it.
552 // `changeIterationSpaceEnd' and is the preheader to the loop denoted by `LS'.
576 // The preheader of the main loop. This may or may not be different from
634 BasicBlock *Preheader = L.getLoopPreheader();
635 if (!Preheader) {
    [all...]
LICM.cpp 12 // code into the preheader block, or by sinking code to the exit blocks if it is
224 // Get the preheader block to move instructions into...
225 BasicBlock *Preheader = L->getLoopPreheader();
244 if (Preheader)
250 if (!DisablePromotion && (Preheader || L->hasDedicatedExits())) {
386 // Try hoisting the instruction out to the preheader. We can only do this
721 auto *Preheader = CurLoop->getLoopPreheader();
722 DEBUG(dbgs() << "LICM hoisting to " << Preheader->getName() << ": " << I
728 // is valid in the loop preheader.
736 // Move the new node to the Preheader, before its terminator
    [all...]
LoopVersioningLICM.cpp 44 // |Orig Loop Preheader | |Cloned Loop Preheader |
169 Preheader(nullptr), CurLoop(nullptr), CurAST(nullptr),
185 BasicBlock *Preheader; // The preheader block of the current loop.
209 // Loop must have a preheader, if not return false.
211 DEBUG(dbgs() << " loop preheader is missing\n");
521 // Get the preheader block.
522 Preheader = L->getLoopPreheader();
LoopDeletion.cpp 38 bool &Changed, BasicBlock *Preheader) {
65 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator())) {
104 // We can only remove the loop if there is a preheader that we can
106 BasicBlock *preheader = L->getLoopPreheader(); local
107 if (!preheader)
134 if (!isLoopDead(L, SE, exitingBlocks, exitBlocks, Changed, preheader))
144 // branch from the preheader to go to the single exit block.
156 // Connect the preheader directly to the exit block.
157 TerminatorInst *TI = preheader->getTerminator();
161 // the preheader instead of the exiting block
    [all...]
LoopIdiomRecognize.cpp 743 /// transform this into a memset or memset_pattern in the loop preheader, do so.
760 // header. This allows us to insert code for it in the preheader.
762 BasicBlock *Preheader = CurLoop->getLoopPreheader();
763 IRBuilder<> Builder(Preheader->getTerminator());
775 // this into a memset in the loop preheader now if we want. However, this
780 Expander.expandCodeFor(Start, DestInt8PtrTy, Preheader->getTerminator());
803 Expander.expandCodeFor(NumBytesS, IntPtr, Preheader->getTerminator());
    [all...]
IndVarSimplify.cpp 741 BasicBlock *Preheader = L->getLoopPreheader();
742 // If there is no preheader, the loop will not be deleted.
743 if (!Preheader)
    [all...]
  /external/swiftshader/third_party/LLVM/lib/Transforms/Utils/
LoopSimplify.cpp 103 BasicBlock *InsertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader);
200 // Does the loop already have a preheader? If so, don't insert one.
201 BasicBlock *Preheader = L->getLoopPreheader();
202 if (!Preheader) {
203 Preheader = InsertPreheaderForLoop(L);
204 if (Preheader) {
212 // loop preheader/header will dominate the exit blocks. If the exit block has
236 // preheader and from multiple backedges), we must adjust the loop.
255 LoopLatch = InsertUniqueBackedgeBlock(L, Preheader);
311 Preheader ? Preheader->getTerminator() : 0))
    [all...]
LoopUnroll.cpp 139 BasicBlock *Preheader = L->getLoopPreheader();
140 if (!Preheader) {
141 DEBUG(dbgs() << " Can't unroll; loop preheader-insertion failed.\n");
308 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader));
  /external/swiftshader/third_party/LLVM/lib/CodeGen/
MachineLICM.cpp 82 MachineBasicBlock *CurPreheader; // The preheader for CurLoop.
94 // Register pressure on path leading from loop preheader to current BB.
158 /// invariants out to the preheader.
207 /// effect of hoisting MI from the current block to the preheader.
234 /// of the preheader to initialize the starting "register pressure". Note
254 /// the preheader that compute the same value. If it's found, do a RAU on
256 /// the instruction to the preheader.
267 bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
270 /// current loop preheader that may become duplicates of instructions that
274 /// getCurPreheader - Get the preheader for the current loop, splittin
    [all...]
  /external/llvm/lib/Target/PowerPC/
PPCCTRLoops.cpp 566 BasicBlock *Preheader = L->getLoopPreheader();
568 // If we don't have a preheader, then insert one. If we already have a
569 // preheader, then we can use it (except if the preheader contains a use of
572 if (!Preheader || mightUseCTR(TT, Preheader))
573 Preheader = InsertPreheaderForLoop(L, DT, LI, PreserveLCSSA);
574 if (!Preheader)
577 DEBUG(dbgs() << "Preheader for exit count: " << Preheader->getName() << "\n")
    [all...]
  /external/swiftshader/third_party/LLVM/lib/Transforms/Scalar/
LICM.cpp 12 // code into the preheader block, or by sinking code to the exit blocks if it is
101 BasicBlock *Preheader; // The preheader block of the current loop...
216 // Get the preheader block to move instructions into...
217 Preheader = L->getLoopPreheader();
242 if (Preheader)
247 if (!DisablePromotion && Preheader && L->hasDedicatedExits()) {
256 Preheader = 0;
345 // Try hoisting the instruction out to the preheader. We can only do this
564 DEBUG(dbgs() << "LICM hoisting to " << Preheader->getName() << ":
    [all...]
LoopIdiomRecognize.cpp 438 /// transform this into a memset or memset_pattern in the loop preheader, do so.
472 // header. This allows us to insert code for it in the preheader.
473 BasicBlock *Preheader = CurLoop->getLoopPreheader();
474 IRBuilder<> Builder(Preheader->getTerminator());
478 // this into a memset in the loop preheader now if we want. However, this
485 Preheader->getTerminator());
511 Expander.expandCodeFor(NumBytesS, IntPtr, Preheader->getTerminator());
561 // header. This allows us to insert code for it in the preheader.
562 BasicBlock *Preheader = CurLoop->getLoopPreheader();
563 IRBuilder<> Builder(Preheader->getTerminator())
    [all...]
LoopDeletion.cpp 41 bool &Changed, BasicBlock *Preheader);
80 bool &Changed, BasicBlock *Preheader) {
102 if (!L->makeLoopInvariant(I, Changed, Preheader->getTerminator()))
131 // We can only remove the loop if there is a preheader that we can
133 BasicBlock* preheader = L->getLoopPreheader(); local
134 if (!preheader)
161 if (!IsLoopDead(L, exitingBlocks, exitBlocks, Changed, preheader))
172 // branch from the preheader to go to the single exit block.
184 // Connect the preheader directly to the exit block.
185 TerminatorInst* TI = preheader->getTerminator()
    [all...]
IndVarSimplify.cpp     [all...]
  /external/llvm/lib/Transforms/Utils/
LoopSimplify.cpp 79 // block' block. This prevents the preheader from being placed inside the loop
115 /// preheader, this method is called to insert one. This method has two phases:
116 /// preheader insertion and analysis updating.
140 PreheaderBB = SplitBlockPredecessors(Header, OutsideBlocks, ".preheader", DT,
155 /// \brief Ensure that the loop preheader dominates all exit blocks.
249 static Loop *separateNestedLoop(Loop *L, BasicBlock *Preheader,
253 // Don't try to separate loops without a preheader.
254 if (!Preheader)
257 // The header is not a landing pad; preheader insertion should ensure this.
352 static BasicBlock *insertUniqueBackedgeBlock(Loop *L, BasicBlock *Preheader,
    [all...]
IntegerDivision.cpp 198 // | | | preheader |
226 BasicBlock *Preheader = BasicBlock::Create(Builder.getContext(),
227 "udiv-preheader", F, End);
270 // ; br i1 %skipLoop, label %loop-exit, label %preheader
276 Builder.CreateCondBr(SkipLoop, LoopExit, Preheader);
278 // ; preheader: ; preds = %bb1
282 Builder.SetInsertPoint(Preheader);
287 // ; do-while: ; preds = %do-while, %preheader
288 // ; %carry_1 = phi i32 [ 0, %preheader ], [ %carry, %do-while ]
289 // ; %sr_3 = phi i32 [ %sr_1, %preheader ], [ %sr_2, %do-while
    [all...]
LoopUnrollRuntime.cpp 63 BasicBlock *PrologExit, BasicBlock *PreHeader,
85 // Adding a value to the new PHI node from the original loop preheader.
89 PreHeader);
91 NewPN->addIncoming(UndefValue::get(PN->getType()), PreHeader);
152 BasicBlock *Exit, BasicBlock *PreHeader,
162 // PreHeader
195 // Add incoming PreHeader from branch around the Loop
196 PN->addIncoming(UndefValue::get(PN->getType()), PreHeader);
214 // PN = PHI [I, Latch], [undef, PreHeader]
220 // Create PHI nodes at NewExit (from the unrolling loop Latch and PreHeader)
    [all...]
LoopUnroll.cpp 208 BasicBlock *Preheader = L->getLoopPreheader();
209 if (!Preheader) {
210 DEBUG(dbgs() << " Can't unroll; loop preheader-insertion failed.\n");
491 PN->replaceAllUsesWith(PN->getIncomingValueForBlock(Preheader));
  /external/llvm/lib/Target/Hexagon/
HexagonHardwareLoops.cpp 53 // Option to create preheader only for a specific function.
58 // Option to create a preheader if one doesn't exist.
59 static cl::opt<bool> HWCreatePreheader("hexagon-hwloop-preheader",
61 cl::desc("Add a preheader to a hardware loop if one doesn't exist"));
177 /// to the loop's preheader.
273 /// \brief Given a loop, if it does not have a preheader, create one.
274 /// Return the block that is the preheader.
388 MachineBasicBlock *Preheader = L->getLoopPreheader();
391 if (!Header || !Preheader || !Latch || !ExitingBlock)
569 MachineBasicBlock *Preheader = L->getLoopPreheader()
    [all...]
  /external/swiftshader/third_party/LLVM/lib/Analysis/
ScalarEvolutionExpander.cpp 159 BasicBlock *Preheader = L->getLoopPreheader();
160 if (!Preheader) break;
163 Builder.SetInsertPoint(Preheader, Preheader->getTerminator());
529 BasicBlock *Preheader = L->getLoopPreheader();
530 if (!Preheader) break;
533 Builder.SetInsertPoint(Preheader, Preheader->getTerminator());
565 BasicBlock *Preheader = L->getLoopPreheader();
566 if (!Preheader) break
    [all...]
LoopInfo.cpp 75 /// If null, the terminator of the loop preheader is used.
91 /// If null, the terminator of the loop preheader is used.
107 BasicBlock *Preheader = getLoopPreheader();
108 // Without a preheader, hoisting is not feasible.
109 if (!Preheader)
111 InsertPt = Preheader->getTerminator();
295 // Normal-form loops have a preheader, a single backedge, and all of their
  /external/llvm/lib/Analysis/
LoopInfo.cpp 86 BasicBlock *Preheader = getLoopPreheader();
87 // Without a preheader, hoisting is not feasible.
88 if (!Preheader)
90 InsertPt = Preheader->getTerminator();
186 // Normal-form loops have a preheader, a single backedge, and all of their
ScalarEvolutionExpander.cpp 204 BasicBlock *Preheader = L->getLoopPreheader();
205 if (!Preheader) break;
208 Builder.SetInsertPoint(Preheader->getTerminator());
531 BasicBlock *Preheader = L->getLoopPreheader();
532 if (!Preheader) break;
535 Builder.SetInsertPoint(Preheader->getTerminator());
559 BasicBlock *Preheader = L->getLoopPreheader();
560 if (!Preheader) break;
563 Builder.SetInsertPoint(Preheader->getTerminator());
    [all...]

Completed in 343 milliseconds

1 2