diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h b/contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h index 0674e1d61f..52ee839a13 100644 --- a/contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h +++ b/contrib/libs/llvm12/include/llvm/Analysis/LoopInfo.h @@ -163,17 +163,17 @@ public: reverse_iterator rbegin() const { return getSubLoops().rbegin(); } reverse_iterator rend() const { return getSubLoops().rend(); } - // LoopInfo does not detect irreducible control flow, just natural - // loops. That is, it is possible that there is cyclic control - // flow within the "innermost loop" or around the "outermost - // loop". - - /// Return true if the loop does not contain any (natural) loops. - bool isInnermost() const { return getSubLoops().empty(); } - /// Return true if the loop does not have a parent (natural) loop - // (i.e. it is outermost, which is the same as top-level). - bool isOutermost() const { return getParentLoop() == nullptr; } - + // LoopInfo does not detect irreducible control flow, just natural + // loops. That is, it is possible that there is cyclic control + // flow within the "innermost loop" or around the "outermost + // loop". + + /// Return true if the loop does not contain any (natural) loops. + bool isInnermost() const { return getSubLoops().empty(); } + /// Return true if the loop does not have a parent (natural) loop + // (i.e. it is outermost, which is the same as top-level). + bool isOutermost() const { return getParentLoop() == nullptr; } + /// Get a list of the basic blocks which make up this loop. ArrayRef<BlockT *> getBlocks() const { assert(!isInvalid() && "Loop not in a valid state!"); @@ -309,9 +309,9 @@ public: /// Otherwise return null. BlockT *getUniqueExitBlock() const; - /// Return true if this loop does not have any exit blocks. - bool hasNoExitBlocks() const; - + /// Return true if this loop does not have any exit blocks. + bool hasNoExitBlocks() const; + /// Edge type. typedef std::pair<BlockT *, BlockT *> Edge; @@ -850,9 +850,9 @@ public: /// unrolling pass is run more than once (which it generally is). void setLoopAlreadyUnrolled(); - /// Add llvm.loop.mustprogress to this loop's loop id metadata. - void setLoopMustProgress(); - + /// Add llvm.loop.mustprogress to this loop's loop id metadata. + void setLoopMustProgress(); + void dump() const; void dumpVerbose() const; @@ -997,7 +997,7 @@ public: LoopT *removeLoop(iterator I) { assert(I != end() && "Cannot remove end iterator!"); LoopT *L = *I; - assert(L->isOutermost() && "Not a top-level loop!"); + assert(L->isOutermost() && "Not a top-level loop!"); TopLevelLoops.erase(TopLevelLoops.begin() + (I - begin())); return L; } @@ -1025,7 +1025,7 @@ public: /// This adds the specified loop to the collection of top-level loops. void addTopLevelLoop(LoopT *New) { - assert(New->isOutermost() && "Loop already in subloop!"); + assert(New->isOutermost() && "Loop already in subloop!"); TopLevelLoops.push_back(New); } |