Displaying 4 results from an estimated 4 matches for "loopverify".
2013 May 08
2
[LLVMdev] How to avoid loopverify failures after replacing the backedge with an edge(latchBB to exitBB) in a looppass?
Hi,
I am writing a loop pass to replace the backedge with an edge from latch to
exit.
Now I just replace the terminator of latch with another BranchInst, and the
loop will not be a loop after my pass. However, it turns out a failure of
loopverify after executing my pass:
opt: ~/llvm/llvm-trunk/include/llvm/Analysis/LoopInfoImpl.h:297: void
llvm::LoopBase<N, M>::verifyLoop() const [with BlockT = llvm::BasicBlock,
LoopT = llvm::Loop]: Assertion `HasInsideLoopPreds && "Loop block has no
in-loop predecessors!"' fail...
2013 May 08
0
[LLVMdev] How to avoid loopverify failures after replacing the backedge with an edge(latchBB to exitBB) in a looppass?
...ang <sjtu.yzy at gmail.com> wrote:
> Hi,
>
> I am writing a loop pass to replace the backedge with an edge from latch to exit.
> Now I just replace the terminator of latch with another BranchInst, and the loop will not be a loop after my pass. However, it turns out a failure of loopverify after executing my pass:
>
> opt: ~/llvm/llvm-trunk/include/llvm/Analysis/LoopInfoImpl.h:297: void llvm::LoopBase<N, M>::verifyLoop() const [with BlockT = llvm::BasicBlock, LoopT = llvm::Loop]: Assertion `HasInsideLoopPreds && "Loop block has no in-loop predecessors!"...
2013 May 08
1
[LLVMdev] How to avoid loopverify failures after replacing the backedge with an edge(latchBB to exitBB) in a looppass?
...at gmail.com> wrote:
>
> Hi,
>
> I am writing a loop pass to replace the backedge with an edge from latch
> to exit.
> Now I just replace the terminator of latch with another BranchInst, and
> the loop will not be a loop after my pass. However, it turns out a failure
> of loopverify after executing my pass:
>
> opt: ~/llvm/llvm-trunk/include/llvm/Analysis/LoopInfoImpl.h:297: void
> llvm::LoopBase<N, M>::verifyLoop() const [with BlockT = llvm::BasicBlock,
> LoopT = llvm::Loop]: Assertion `HasInsideLoopPreds && "Loop block has no
> in-loop prede...
2018 Jul 06
2
Verify that we only get loop metadata on latches
In https://bugs.llvm.org/show_bug.cgi?id=38011 (see also https://reviews.llvm.org/D48721) a problem was revealed related to llvm.loop metadata.
The fault was that clang added the !llvm.loop metadata to branches outside of the loop (not only the loop latch). That was not handled properly by some opt passes (simplifying cfg) since it ended up merging branch instructions with different !llvm.loop