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

1 2

  /src/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
LoopNestAnalysis.h 38 /// Return true if the given loops \p OuterLoop and \p InnerLoop are
72 Loop &getOutermostLoop() const { return *Loops.front(); }
78 if (Loops.size() == 1)
79 return Loops.back();
81 // The loops in the 'Loops' vector have been collected in breadth first
82 // order, therefore if the last 2 loops in it have the same nesting depth
84 Loop *LastLoop = Loops.back();
85 auto SecondLastLoopIter = ++Loops.rbegin();
93 assert(Index < Loops.size() && "Index is out of bounds")
    [all...]
ScalarEvolutionNormalization.h 30 // paired with a set of loops for which the expression is in "post-increment"
31 // mode (there may be multiple loops).
52 /// Normalize \p S to be post-increment for all loops present in \p
53 /// Loops.
54 const SCEV *normalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops,
62 /// Denormalize \p S to be post-increment for all loops present in \p
63 /// Loops.
64 const SCEV *denormalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops,
DependenceAnalysis.h 152 /// getLevels - Returns the number of common loops surrounding the
233 /// getLevels - Returns the number of common loops surrounding the
298 /// to dependences). Looking for cycles in the graph shows us loops
331 /// both loops.
349 SmallBitVector Loops;
460 /// instructions and establishes their shared loops. Sets the variables
470 /// It's used to help calculate distinct loops referenced by the destination.
471 /// Here's the map from loops to levels:
474 /// ... - other common loops
476 /// ... - loops containing Src but not Ds
    [all...]
LoopCacheAnalysis.h 182 /// Construct a CacheCost object for the loop nest described by \p Loops.
186 CacheCost(const LoopVectorTy &Loops, const LoopInfo &LI, ScalarEvolution &SE,
246 /// Loops in the loop nest associated with this object.
247 LoopVectorTy Loops;
249 /// Trip counts for the loops in the loop nest associated with this object.
252 /// Cache costs for the loops in the loop nest associated with this object.
LoopInfoImpl.h 9 // This is the generic implementation of LoopInfo used for both Loops and
237 /// Because of this, it is added as a member of all parent loops, and is added
260 // Add the basic block to this loop and all parent loops...
267 /// replaceChildLoopWith - This is used when splitting loops up. It replaces
370 /// verifyLoop - Verify loop structure of this loop and all nested loops.
373 DenseSet<const LoopT *> *Loops) const {
375 Loops->insert(static_cast<const LoopT *>(this));
380 (*I)->verifyLoopNest(Loops);
507 /// Add a single Block to its ancestor loops in PostOrder. If the block is a
533 /// Analyze LoopInfo discovers loops during a postorder DominatorTree traversa
    [all...]
BlockFrequencyInfoImpl.h 424 /// Indexed information about loops.
425 std::list<LoopData> Loops;
446 /// every edge should be a local edge (since all the loops are packaged up).
462 /// Insert them into \a Loops before \c Insert.
480 /// backedges and exits are stored in its entry in Loops.
491 /// Initially, irreducible loops are assumed to distribute their mass
504 /// Unwrap loops.
632 /// loops.
702 /// which is called the header. A given loop, L, can have sub-loops, which are
703 /// loops within the subgraph of L that exclude its header. (A "trivial" SC
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/CodeGen/
CalcSpillWeights.h 50 const MachineLoopInfo &Loops;
59 const VirtRegMap &VRM, const MachineLoopInfo &Loops,
61 : MF(MF), LIS(LIS), VRM(VRM), Loops(Loops), MBFI(MBFI) {}
MachineTraceMetrics.h 30 // Traces tend to align with loops. The trace through a block in an inner loop
32 // nested loops, the trace may begin and end at those instead.
92 const MachineLoopInfo *Loops = nullptr;
  /src/external/apache2/llvm/dist/llvm/lib/Analysis/
ScalarEvolutionNormalization.cpp 22 /// Normalize - Normalize according to the given loops.
57 // incrementing a SCEV expression with respect to a set of loops. Since
97 const PostIncLoopSet &Loops,
100 return Loops.count(AR->getLoop());
111 const PostIncLoopSet &Loops,
114 return Loops.count(AR->getLoop());
LoopCacheAnalysis.cpp 57 /// Retrieve the innermost loop in the given loop nest \p Loops. It returns a
58 /// nullptr if any loops in the loop vector supplied has more than one sibling.
59 /// The loop vector is expected to contain loops collected in breadth-first
61 static Loop *getInnerMostLoop(const LoopVectorTy &Loops) {
62 assert(!Loops.empty() && "Expecting a non-empy loop vector");
64 Loop *LastLoop = Loops.back();
68 assert(Loops.size() == 1 && "Expecting a single loop");
72 return (llvm::is_sorted(Loops,
481 CacheCost::CacheCost(const LoopVectorTy &Loops, const LoopInfo &LI,
485 : Loops(Loops), TripCounts(), LoopCosts()
    [all...]
DependenceAnalysis.cpp 695 // instructions and establishes their shared loops. Sets the variables
705 // It's used to help calculate distinct loops referenced by the destination.
706 // Here's the map from loops to levels:
709 // ... - other common loops
711 // ... - loops containing Src but not Dst
713 // ... - loops containing Dst but not Src
714 // MaxLevels - innermost loops containing Dst but not Src
734 // have 2 loops in common, so CommonLevels will equal 2 and the direction
772 // Given one of the loops containing the source, return
779 // Given one of the loops containing the destination
    [all...]
InlineSizeEstimatorAnalysis.cpp 61 Loops,
198 FF[NamedFeatureIndex::Loops] = std::distance(LI.begin(), LI.end());
LoopNestAnalysis.cpp 27 /// Determine whether the loops structure violates basic requirements for
45 append_range(Loops, breadth_first(&Root));
61 // Determine whether the loops structure satisfies the following requirements:
165 for (Loop *L : depth_first(const_cast<Loop *>(Loops.front()))) {
242 // We expect loops in normal form which have a preheader, header, latch...
252 // We expect rotated loops. The inner loop should have a single exit block.
279 // Ensure the only branch that may exist between the loops is the inner loop
316 // loops are still considered perfectly nested if the extra block only
365 OS << ", Loops: ( ";
BlockFrequencyInfoImpl.cpp 9 // Loops should be simplified before this analysis.
284 Loops.clear();
377 // Infinite loops need special handling. If we give the back edge an infinite
534 for (LoopData &Loop : Loops)
779 auto Loop = BFI.Loops.emplace(Insert, OuterLoop, Headers.begin(),
794 assert((OuterLoop == nullptr) == (Insert == Loops.begin()));
795 auto Prev = OuterLoop ? std::prev(Insert) : Loops.end();
807 return make_range(Loops.begin(), Insert);
823 assert(Loop.isIrreducible() && "this only makes sense on irreducible loops");
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/
StructurizeCFG.cpp 221 /// Additionally to that even complicated loops look like this:
261 BB2BBMap Loops;
277 void insertConditions(bool Loops);
425 /// Determine the end of the loops
431 Loops[Exit] = N->getEntry();
440 Loops[Succ] = BB;
483 if (Visited.count(Other) && !Loops.count(Other) &&
521 Loops.clear();
544 void StructurizeCFG::insertConditions(bool Loops) {
545 BranchVector &Conds = Loops ? LoopConds : Conditions
    [all...]
LoopUnrollAndJamPass.cpp 78 cl::desc("Allows loops to be unroll-and-jammed."));
82 cl::desc("Use this unroll count for all loops including those with "
91 cl::desc("Unrolled size limit for loops with an unroll_and_jam(full) or "
166 // for unrolling the outer loop, plus any loops requiring explicit
259 // Limit to loops where there is something to gain from unrolling and
434 ArrayRef<Loop *> Loops = LN.getLoops();
439 appendLoopsToWorklist(Loops, Worklist);
502 "Unroll and Jam loops", false, false)
514 "Unroll and Jam loops", false, false)
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/IPO/
LoopExtractor.cpp 38 STATISTIC(NumExtracted, "Number of loops extracted");
75 // The number of natural loops to extract from the program into functions.
92 "Extract loops into new functions", false, false)
98 "Extract loops into new functions", false, false)
112 // createLoopExtractorPass - This pass extracts all natural loops from the
177 // If there are no loops in the function.
184 // the loops.
221 // sub-loops, extract them.
228 SmallVector<Loop *, 8> Loops;
230 // Save the list of loops, as it may change
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/CodeGen/
EarlyIfConversion.cpp 764 MachineLoopInfo *Loops;
825 void updateLoops(MachineLoopInfo *Loops,
827 if (!Loops)
832 Loops->removeBlock(B);
1038 updateLoops(Loops, RemovedBlocks);
1059 Loops = getAnalysisIfAvailable<MachineLoopInfo>();
1089 MachineLoopInfo *Loops;
1176 updateLoops(Loops, RemovedBlocks);
1193 Loops = getAnalysisIfAvailable<MachineLoopInfo>();
MachineTraceMetrics.cpp 72 Loops = &getAnalysis<MachineLoopInfo>();
170 return MTM.Loops->getLoopFor(MBB);
295 // We never allow traces that leave loops, but we do allow traces to enter
296 // nested loops. We also never allow traces to contain back-edges.
330 // Don't leave loops, and never follow back-edges.
339 // Ignore cycles that aren't natural loops.
369 // Ignore cycles that aren't natural loops.
430 const MachineLoopInfo *Loops;
434 const MachineLoopInfo *loops) : Blocks(blocks), Loops(loops) {
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/
UnifyLoopExits.cpp 213 auto Loops = LI.getLoopsInPreorder();
214 for (auto L : Loops) {
  /src/external/apache2/llvm/dist/llvm/lib/Target/X86/
X86CmovConversion.cpp 15 /// 1. Consider as candidates only CMOVs in innermost loops (assume that
16 /// most hotspots are represented by these loops).
24 /// 3. Apply conversion only for loops that are found profitable and only for
81 STATISTIC(NumOfLoopCandidate, "Number of CMOV-conversion profitable loops");
176 // of potentially hot loops, we want to quickly remove all CMOVs with
223 // Build up the loops in pre-order.
224 SmallVector<MachineLoop *, 4> Loops(MLI.begin(), MLI.end());
226 // loops.
227 for (int i = 0; i < (int)Loops.size(); ++i)
228 for (MachineLoop *Child : Loops[i]->getSubLoops()
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/Target/AArch64/
AArch64ConditionalCompares.cpp 770 MachineLoopInfo *Loops;
839 if (!Loops)
842 Loops->removeBlock(RemovedMBB);
939 Loops = getAnalysisIfAvailable<MachineLoopInfo>();
  /src/external/apache2/llvm/dist/llvm/lib/Frontend/OpenMP/
OMPIRBuilder.cpp 1473 // * jump to the loop outer loop when done with one of the inner loops.
1558 OpenMPIRBuilder::collapseLoops(DebugLoc DL, ArrayRef<CanonicalLoopInfo *> Loops,
1560 assert(Loops.size() >= 1 && "At least one loop required");
1561 size_t NumLoops = Loops.size();
1565 return Loops.front();
1567 CanonicalLoopInfo *Outermost = Loops.front();
1568 CanonicalLoopInfo *Innermost = Loops.back();
1583 for (CanonicalLoopInfo *L : Loops) {
1602 // one, using a divmod scheme. To preserve the original loops' order, the
1610 Value *OrigTripCount = Loops[i]->getTripCount()
    [all...]
  /src/external/apache2/llvm/dist/llvm/include/llvm/Frontend/OpenMP/
OMPIRBuilder.h 290 /// Merges loops of a loop nest into a single CanonicalLoopNest representation
292 /// nest. The induction variables of the input loops are derived from the
296 /// directive's implementation does not need to handle multiple loops itself.
308 /// After collapsing with Loops={i,j}, the loop is changed to
319 /// * All input loops have an induction variable of the same type.
322 /// input loops. Therefore it is possible that the collapsed loop cannot
323 /// represent all iterations of the input loops. For instance, assuming a
324 /// 32 bit integer type, and two input loops both iterating 2^16 times, the
330 /// Non-rectangular loops are not yet supported.
340 /// \param Loops Loops in the loop nest to collapse. Loops are specifie
    [all...]
  /src/external/apache2/llvm/dist/llvm/lib/TableGen/
TGParser.cpp 173 // Do not allow assignments like 'X = X'. This will just cause infinite loops
351 if (!Loops.empty()) {
352 Loops.back()->Entries.push_back(std::move(E));
379 /// Resolve the entries in \p Loop, going over inner loops recursively
418 /// Resolve the entries in \p Source, going over loops recursively and
890 for (const auto &L : Loops) {
2186 // FIXME: The following two loops would not be duplicated
3149 Loops.push_back(std::make_unique<ForeachLoop>(Loc, IterName, ListValue));
3176 std::unique_ptr<ForeachLoop> Loop = std::move(Loops.back());
3177 Loops.pop_back()
    [all...]

Completed in 62 milliseconds

1 2