[LLVMbugs] [Bug 22583] New: [EarlyCSE] Missed trivial dead store case

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Feb 13 16:33:58 PST 2015


            Bug ID: 22583
           Summary: [EarlyCSE] Missed trivial dead store case
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: listmail at philipreames.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Early CSE currently does not handle this case:
; Function Attrs: readonly
declare void @readmem() #0

define void @test(i64* %ptr) {
  %v = load i64* %ptr
  store i64 %v, i64* %ptr
  call void @readmem()
  ret void

attributes #0 = { readonly }

The store is dead since it's writing back the same value which was read.  Given
both are simple (non volatile, non ordered) the store can just be removed.

EarlyCSE has all the information to do this.  Load is part of the available
load set.  We know we haven't crossed an ordering set (if available load set is

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/20150214/f1da728b/attachment.html>

More information about the llvm-bugs mailing list