<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><span class="vcard"><a class="email" href="mailto:sanjoy@playingwithpointers.com" title="Sanjoy Das <sanjoy@playingwithpointers.com>"> <span class="fn">Sanjoy Das</span></a>
</span> changed
<a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED DUPLICATE - Compiler crash in "Induction Variable Simplification" for "-fno-exceptions""
href="https://llvm.org/bugs/show_bug.cgi?id=27945">bug 27945</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>NEW
</td>
<td>RESOLVED
</td>
</tr>
<tr>
<td style="text-align:right;">CC</td>
<td>
</td>
<td>michael.v.zolotukhin@gmail.com
</td>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>---
</td>
<td>DUPLICATE
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED DUPLICATE - Compiler crash in "Induction Variable Simplification" for "-fno-exceptions""
href="https://llvm.org/bugs/show_bug.cgi?id=27945#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED DUPLICATE - Compiler crash in "Induction Variable Simplification" for "-fno-exceptions""
href="https://llvm.org/bugs/show_bug.cgi?id=27945">bug 27945</a>
from <span class="vcard"><a class="email" href="mailto:sanjoy@playingwithpointers.com" title="Sanjoy Das <sanjoy@playingwithpointers.com>"> <span class="fn">Sanjoy Das</span></a>
</span></b>
<pre>Running with this patch
diff --git a/lib/Analysis/LoopPass.cpp b/lib/Analysis/LoopPass.cpp
index 3181e4f..0ea2bf4 100644
--- a/lib/Analysis/LoopPass.cpp
+++ b/lib/Analysis/LoopPass.cpp
@@ -14,6 +14,7 @@
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/LoopPass.h"
+#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRPrintingPasses.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/OptBisect.h"
@@ -197,6 +198,15 @@ bool LPPassManager::runOnFunction(Function &F) {
TimeRegion PassTimer(getPassTimer(P));
Changed |= P->runOnLoop(CurrentLoop, *this);
+
+ DominatorTree DT;
+ DT.recalculate(F);
+ for (auto *L : make_range(LI->begin(), LI->end())) {
+ if (!L->isRecursivelyLCSSAForm(DT)) {
+ dbgs() << "Broke LCSSA after running " << P->getPassName() << "n";
+ assert(false);
+ }
+ }
}
LoopWasDeleted = CurrentLoop->isInvalid();
Crashes as:
Broke LCSSA after running Unroll loops
Assertion failed: (false), function runOnFunction, file
../../lib/Analysis/LoopPass.cpp, line 207.
So it is most likely a duplicate of PR26682.
*** This bug has been marked as a duplicate of <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - crash on x86_64-linux-gnu at -O2 and above in both 32-bit and 64-bit modes (Assertion `L->isRecursivelyLCSSAForm(*DT) && "Indvars did not preserve LCSSA!"' failed)"
href="show_bug.cgi?id=26682">bug 26682</a> ***</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>