<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 - [DSE] Stores not eliminated if they are overwritten in a loop."
href="https://bugs.llvm.org/show_bug.cgi?id=46460">46460</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[DSE] Stores not eliminated if they are overwritten in a loop.
</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>All
</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>Scalar Optimizations
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>florian_hahn@apple.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>In the example below, LLVM currently does not eliminate the stores in the
second loop, even though the second loop exactly overwrites the stores of the
first loop. Similarly the first loop could be replaced by a memcpy and we still
not remove it:
<a href="https://godbolt.org/z/kGBEXS">https://godbolt.org/z/kGBEXS</a>
void init(int *P, unsigned N) {
for (unsigned i = 0; i < N; i++)
P[i] = 1;
for (unsigned i = 0; i < N; i++)
P[i] = 1;
}</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>