[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