mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-01 16:31:13 +00:00
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131847 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0e959394ad
commit
9e7bc05ad7
@ -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);
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user