<html>
<head>
<base href="https://llvm.org/bugs/" />
</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 --- - incorrect saving/restoring points in shrink-wrap"
href="https://llvm.org/bugs/show_bug.cgi?id=25824">25824</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>incorrect saving/restoring points in shrink-wrap
</td>
</tr>
<tr>
<th>Product</th>
<td>tools
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>llc
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>weimingz@codeaurora.org
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>Given a loop, like
HeadBB
/ \
/ \
/ \
ExitingPath\
\
someBB
/ \
/ \
(BB1)Def of CSR \
\
(BB2) Use of CSR
Since HeadBB dominates both BB1 and BB2, and HeadBB post-doms BB1 and BB2,
eventually, it returning HeadBB as saving and restoring point. As a result,
Epilog/Prolog Inserter inserts a pair of push/pop in HeadBB, which in
incorrect.
Domination only guarantees the def in dominator will reach it's descendants,
but it doesn't guarantee the value in HeadBB is before the change made in BB1.</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>