http://llvm.org/bugs/show_bug.cgi?id=2967
Summary: instcombine is removing a traping instruction
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Scalar Optimizations
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]
CC: [email protected]
In this code, instcombine reduces it to ret void. The trapping load is
removed. Essentially I would contend the load should be treated in the same
way a noreturn function before an unreachable is treated.
target datalayout =
"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-$
target triple = "i386-pc-linux-gnu"
define void @foo(i32 %x) nounwind {
entry:
%0 = icmp eq i32 %x, 0 ; <i1> [#uses=1]
br i1 %0, label %bb, label %return
bb: ; preds = %entry
%1 = volatile load i32* null ; <i32> [#uses=0]
unreachable
br label %return
return: ; preds = %entry
ret void
}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs