https://llvm.org/bugs/show_bug.cgi?id=26510

            Bug ID: 26510
           Summary: Incorrect attribute inference w/operand bundles
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedb...@nondot.org
          Reporter: listm...@philipreames.com
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

With the example below, running this through O3 causes @test to be marked
readnone and the loads/stores to be deleted by other optimization passes as a
result.  Tracing through print-after-all, it's clearly FunctionAttrs which is
doing the problematic transform, but I can not reproduce this standalone. 
Worryingly, it looks like a different value is being returned from AA when run
through O3 or not (but with AA passes added).  

declare void @foo() readnone

define i8* @test(i8* %p) {
  %a = alloca i8*, align 8
  store i8* %p, i8** %a, align 8
  call void @foo() ["abc" (i8** %a)]
  %reload = load i8*, i8** %a, align 8
  ret i8* %reload
}

("abc" is a unknown deopt bundle type which could potentially write to the
specified address.)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to