[llvm-commits] [llvm] r90408 - in /llvm/trunk: lib/Transforms/Scalar/GVN.cpp test/Transforms/GVN/crash-2.ll
Owen Anderson
resistor at mac.com
Wed Dec 2 19:43:30 PST 2009
Author: resistor
Date: Wed Dec 2 21:43:29 2009
New Revision: 90408
URL: http://llvm.org/viewvc/llvm-project?rev=90408&view=rev
Log:
Fix this crasher, and add a FIXME for a missed optimization.
Modified:
llvm/trunk/lib/Transforms/Scalar/GVN.cpp
llvm/trunk/test/Transforms/GVN/crash-2.ll
Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=90408&r1=90407&r2=90408&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Wed Dec 2 21:43:29 2009
@@ -1449,6 +1449,16 @@
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.
Modified: llvm/trunk/test/Transforms/GVN/crash-2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/crash-2.ll?rev=90408&r1=90407&r2=90408&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/GVN/crash-2.ll (original)
+++ llvm/trunk/test/Transforms/GVN/crash-2.ll Wed Dec 2 21:43:29 2009
@@ -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"
More information about the llvm-commits
mailing list