Fix this crasher, and add a FIXME for a missed optimization.

llvm-svn: 90408
This commit is contained in:
Owen Anderson 2009-12-03 03:43:29 +00:00
parent 2842b4cf86
commit 0b6e260066
2 changed files with 10 additions and 1 deletions

View File

@ -1449,6 +1449,16 @@ bool GVN::processNonLocalLoad(LoadInst *LI,
LoadPtr = MD->GetAvailablePHITranslatedValue(LI->getOperand(0), LoadBB,
UnavailablePred, TD, *DT);
}
// Assign value numbers to these new instructions.
for (SmallVector<Instruction*, 8>::iterator NI = NewInsts.begin(),
NE = NewInsts.end(); NI != NE; ++NI) {
// FIXME: We really _ought_ to insert these value numbers into their
// parent's availability map. However, in doing so, we risk getting into
// ordering issues. If a block hasn't been processed yet, we would be
// marking a value as AVAIL-IN, which isn't what we intend.
VN.lookup_or_add(*NI);
}
// If we couldn't find or insert a computation of this phi translated value,
// we fail PRE.

View File

@ -1,5 +1,4 @@
; RUN: opt -gvn -S %s
; XFAIL: *
; rdar://7438974
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"