[LLVMbugs] [Bug 18849] New: Store overwritten in next loop iteration is not eliminated
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Sat Feb 15 05:37:08 PST 2014
http://llvm.org/bugs/show_bug.cgi?id=18849
Bug ID: 18849
Summary: Store overwritten in next loop iteration is not
eliminated
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Scalar Optimizations
Assignee: unassignedbugs at nondot.org
Reporter: tobias at grosser.es
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 12065
--> http://llvm.org/bugs/attachment.cgi?id=12065&action=edit
The LLVM-IR file to reproduce this bug
This loop contains a store that is overwritten right in the next loop iteration
and the store in the last loop iteration is overwritten right after the loop.
So the store is fully redundant.
void f(float *restrict A, float *restrict B, long N) {
B[0] = A[0];
for (long i = 1; i < N - 1; i += 1) {
B[i - 1] += A[i];
B[i] = A[i]; << This store is unneccessary
}
B[N - 2] += A[N - 1];
}
I would expect LLVM to eliminate this store.
The attached test case was slightly modified by removing the unnecessary reload
of 'B[N - 2] +=' to ensure that this load is not potentially obfuscating
the store right after the load.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140215/63a3c7f0/attachment.html>
More information about the llvm-bugs
mailing list