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

            Bug ID: 31573
           Summary: NewGVN fails to verify memory congruency
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected]
            Blocks: 30995
    Classification: Unclassified

Reduced from Jonas Paulsson's report.

define void @patatino(i8* %blah) {
entry:
  br label %while.cond

while.cond:
  %meh = phi i8* [ %blah, %entry ], [ null, %while.body ]
  switch i32 undef, label %while.body [
    i32 666, label %while.end
  ]

while.body:
  br label %while.cond

while.end:
  store i8 0, i8* %meh, align 1
  store i8 0, i8* %blah, align 1
  ret void
}

$ opt -newgvn patatuccio.ll -o /dev/null
opt: ../lib/Transforms/Scalar/NewGVN.cpp:1477: void
NewGVN::verifyMemoryCongruency(): Assertion
`ValueToClass.lookup(FirstMUD->getMemoryInst()) ==
ValueToClass.lookup(SecondMUD->getMemoryInst()) && "The instructions for these
memory operations should have been in " "the same congruence class"' failed.
[...]

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

Reply via email to