https://llvm.org/bugs/show_bug.cgi?id=29163
Bug ID: 29163 Summary: SimplifyCFG: FoldTwoEntryPHINode does not remove metadata. Product: libraries Version: 3.9 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Transformation Utilities Assignee: unassignedb...@nondot.org Reporter: edy.b...@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified In this example, SimplifyCFG::FoldTwoEntryPHINode will make the load unconditional, without removing the !range annotation (which would then kill a null check, in the original testcase): target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" @GV = external constant i64 define i64 @test(i1 %cond) { entry: br i1 %cond, label %if, label %then then: %pti = ptrtoint i64* @GV to i64 br label %join if: %load = load i64, i64* @GV, align 8, !range !0 br label %join join: %phi = phi i64 [ %pti, %then ], [ %load, %if ] ret i64 %phi } !0 = !{i64 1, i64 0} ; ----------------------- ; After opt -simplifycfg: define i64 @test(i1 %cond) { entry: %pti = ptrtoint i64* @GV to i64 %load = load i64, i64* @GV, align 8, !range !0 %phi = select i1 %cond, i64 %load, i64 %pti ret i64 %phi } -- 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