[llvm-bugs] [Bug 32153] New: [GVNHoist] Invalid hoist of store

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Mar 6 09:27:56 PST 2017


            Bug ID: 32153
           Summary: [GVNHoist] Invalid hoist of store
           Product: libraries
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: gberry at codeaurora.org
                CC: llvm-bugs at lists.llvm.org

GVNHoist hoists the store to @G in the following code, even though the switch
default path directly to %exit does not store to @G.  This is a reduced test
case that was reported by Benjamin Kramer when compiling bash with the GVNHoist
pass moved in the pass pipeline to the beginning of the function simplification

%struct.__jmp_buf_tag = type { [8 x i64], i32 }

@test_exit_buf = global %struct.__jmp_buf_tag zeroinitializer
@G = global i32 0

define void @test_command(i32 %c1) {
  switch i32 %c1, label %exit [
    i32 0, label %sw0
    i32 1, label %sw1

  store i32 1, i32* @G
  br label %exit

  store i32 1, i32* @G
  br label %exit

  call void @longjmp(%struct.__jmp_buf_tag* @test_exit_buf, i32 1) #0

declare void @longjmp(%struct.__jmp_buf_tag*, i32) #0

attributes #0 = { noreturn nounwind }

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/20170306/56434bae/attachment.html>

More information about the llvm-bugs mailing list