<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - "PostDominatorTree is different than a freshly computed one!" with opt -branch-prob -instcombine -block-freq -verify-dom-info"
href="https://bugs.llvm.org/show_bug.cgi?id=46098">46098</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>"PostDominatorTree is different than a freshly computed one!" with opt -branch-prob -instcombine -block-freq -verify-dom-info
</td>
</tr>
<tr>
<th>Product</th>
<td>libraries
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Global Analyses
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>mikael.holmen@ericsson.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=23540" name="attach_23540" title="dt_verify_fail.ll">attachment 23540</a> <a href="attachment.cgi?id=23540&action=edit" title="dt_verify_fail.ll">[details]</a></span>
dt_verify_fail.ll
Reproduce with:
opt -S -o - dt_verify_fail.ll -branch-prob -instcombine -block-freq
-verify-dom-info
Which results in:
PostDominatorTree is different than a freshly computed one!
Current:
=============================--------------------------------
Inorder PostDominator Tree: DFSNumbers invalid: 0 slow queries.
[1] <<exit node>> {4294967295,4294967295} [0]
[2] %lor.rhs {4294967295,4294967295} [1]
[3] %for.cond221 {4294967295,4294967295} [2]
[4] %entry {4294967295,4294967295} [3]
[4] %lor.end {4294967295,4294967295} [3]
Roots: %lor.rhs
Freshly computed tree:
=============================--------------------------------
Inorder PostDominator Tree: DFSNumbers invalid: 0 slow queries.
[1] <<exit node>> {4294967295,4294967295} [0]
[2] %lor.end {4294967295,4294967295} [1]
[3] %lor.rhs {4294967295,4294967295} [2]
[3] %for.cond221 {4294967295,4294967295} [2]
[4] %entry {4294967295,4294967295} [3]
Roots: %lor.end
opt: ../lib/Analysis/PostDominators.cpp:83: virtual void
llvm::PostDominatorTreeWrapperPass::verifyAnalysis() const: Assertion
`DT.verify(PostDominatorTree::VerificationLevel::Full)' failed.
Starts failing with 3e68a667047:
[BPI][NFC] Reuse post dominantor tree from analysis manager when available
Summary: Currenlty BPI unconditionally creates post dominator tree each
time. While this is not incorrect we can save compile time by reusing existing
post dominator tree (when it's valid) provided by analysis manager.
Reviewers: skatkov, taewookoh, yrouban
Reviewed By: skatkov
Subscribers: hiraditya, steven_wu, dexonsmith, llvm-commits
Tags: #llvm
Differential Revision: <a href="https://reviews.llvm.org/D78987">https://reviews.llvm.org/D78987</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>