[llvm-bugs] [Bug 30216] New: GVNHoist hoists a store above a load of the same memory location
    via llvm-bugs 
    llvm-bugs at lists.llvm.org
       
    Tue Aug 30 22:47:33 PDT 2016
    
    
  
https://llvm.org/bugs/show_bug.cgi?id=30216
            Bug ID: 30216
           Summary: GVNHoist hoists a store above a load of the same
                    memory location
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: sebpop at gmail.com
          Reporter: george.burgess.iv at gmail.com
                CC: dberlin at dberlin.org, llvm-bugs at lists.llvm.org
    Classification: Unclassified
Hi! I have a repro of a bug for you (on r280192):
$ echo '
@A = external global i8
@B = external global i8*
define i8* @Foo() {
  store i8 0, i8* @A
  br i1 undef, label %if.then, label %if.else
if.then:
  store i8* null, i8** @B
  ret i8* null
if.else:
  %1 = load i8*, i8** @B
  store i8* null, i8** @B
  ret i8* %1
}
' | opt -gvn-hoist -S
@A = external global i8
@B = external global i8*
define i8* @Foo() {
  store i8 0, i8* @A
  store i8* null, i8** @B
  br i1 undef, label %if.then, label %if.else
if.then:                                          ; preds = %0
  ret i8* null
if.else:                                          ; preds = %0
  %1 = load i8*, i8** @B
  ret i8* %1
}
The hoist of the store to @B above a load of @B is illegal. This won't repro
without the store to @A at the top. :)
-- 
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/20160831/9256f1a1/attachment.html>
    
    
More information about the llvm-bugs
mailing list