fix PR9841 by having GVN not process dead loads. This was

causing it to get into infinite loops when it would widen a 
load (which can necessarily leave around dead loads).

llvm-svn: 131847
This commit is contained in:
Chris Lattner 2011-05-22 07:03:34 +00:00
parent dcb6599980
commit 6cce3b63ab
2 changed files with 17 additions and 0 deletions

View File

@ -1607,6 +1607,11 @@ bool GVN::processLoad(LoadInst *L) {
if (L->isVolatile())
return false;
if (L->use_empty()) {
markInstructionForDeletion(L);
return true;
}
// ... to a pointer that has been loaded from before...
MemDepResult Dep = MD->getDependency(L);

View File

@ -151,3 +151,15 @@ dead:
dead2:
ret i32 %A
}
; PR9841
define fastcc i8 @test5(i8* %P) nounwind {
entry:
%0 = load i8* %P, align 2
%Q = getelementptr i8* %P, i32 1
%1 = load i8* %Q, align 1
ret i8 %1
}