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

            Bug ID: 35222
           Summary: Regression from r313116: gvn-hoist incorrectly erases
                    load
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedb...@nondot.org
          Reporter: efrie...@codeaurora.org
                CC: dber...@dberlin.org, hiradi...@msn.com,
                    llvm-bugs@lists.llvm.org

Testcase follows.  With "opt -gvn-hoist", the second load gets erased (which is
wrong because @pqdownheap could modify the global).

; ModuleID = 'gvn-hoist-test.ll'
source_filename = "gvn-hoist-test.ll"
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"

@heap = external global i32, align 4

define i32 @build_tree() unnamed_addr {
entry:
  br label %do.body

do.body:                                          ; preds = %do.body, %entry
  %tmp9 = load i32, i32* @heap, align 4
  %cmp = call i1 @pqdownheap(i32 %tmp9)
  br i1 %cmp, label %do.body, label %do.end

do.end:                                           ; preds = %do.body
  %tmp20 = load i32, i32* @heap, align 4
  ret i32 %tmp20
}

declare i1 @pqdownheap(i32)

-- 
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