From 34182ae3ae547629383144396718286e92f2b18b Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sat, 13 Dec 2008 09:28:44 +0000 Subject: [PATCH] Temporarily revert r60973. It's inexplicably causing a failure when self-hosting LLVM: llvm[2]: Linking Release executable opt (without symbols) ... Undefined symbols: "llvm::APFloat::IEEEsingle", referenced from: __ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(Constants.o) __ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(AsmWriter.o) __ZN4llvm7APFloat10IEEEsingleE$non_lazy_ptr in libLLVMCore.a(ConstantFold.o) "llvm::APFloat::IEEEdouble", referenced from: __ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(Constants.o) __ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(AsmWriter.o) __ZN4llvm7APFloat10IEEEdoubleE$non_lazy_ptr in libLLVMCore.a(ConstantFold.o) ld: symbol(s) not found This is in release mode. To replicate, compile llvm and llvm-gcc in optimized mode. Then build llvm, in optimized mode, with the newly created compiler. llvm-svn: 60977 --- lib/Transforms/Scalar/GVN.cpp | 1 - test/Transforms/GVN/2007-07-26-InterlockingLoops.ll | 4 ++-- test/Transforms/GVN/2007-07-26-PhiErasure.ll | 2 +- test/Transforms/GVN/2007-07-31-NoDomInherit.ll | 2 +- test/Transforms/GVN/nonlocal.ll | 2 +- test/Transforms/GVN/rle-must-alias.ll | 2 +- test/Transforms/GVN/semidominated.ll | 2 +- 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index cb2b06b7a6d..2081811f0d1 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -1034,7 +1034,6 @@ bool GVN::processNonLocalLoad(LoadInst *LI, // Perform PHI construction. Value* v = GetValueForBlock(LI->getParent(), LI, BlockReplValues, true); LI->replaceAllUsesWith(v); - v->takeName(LI); if (isa(v->getType())) MD->invalidateCachedPointerInfo(v); toErase.push_back(LI); diff --git a/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll b/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll index a9656352dda..1dd1479b482 100644 --- a/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll +++ b/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll @@ -1,5 +1,5 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17625.* = phi i32. } -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17631 = phi i32. } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp17625 =} +; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp17631 =} @last = external global [65 x i32*] ; <[65 x i32*]*> [#uses=1] diff --git a/test/Transforms/GVN/2007-07-26-PhiErasure.ll b/test/Transforms/GVN/2007-07-26-PhiErasure.ll index 4925df786d7..52c5b8e7ec8 100644 --- a/test/Transforms/GVN/2007-07-26-PhiErasure.ll +++ b/test/Transforms/GVN/2007-07-26-PhiErasure.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp298316 = phi i32 } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp298316 =} %struct..0anon = type { i32 } %struct.FILE = type { i8*, i32, i32, i16, i16, %struct.__sbuf, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, i64 (i8*, i64, i32)*, i32 (i8*, i8*, i32)*, %struct.__sbuf, %struct.__sFILEX*, i32, [3 x i8], [1 x i8], %struct.__sbuf, i32, i64 } diff --git a/test/Transforms/GVN/2007-07-31-NoDomInherit.ll b/test/Transforms/GVN/2007-07-31-NoDomInherit.ll index 6cb7785fcd5..5dbd34c0cde 100644 --- a/test/Transforms/GVN/2007-07-31-NoDomInherit.ll +++ b/test/Transforms/GVN/2007-07-31-NoDomInherit.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp47 = phi i32 } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep tmp51.rle %struct.anon = type { i32 (i32, i32, i32)*, i32, i32, [3 x i32], i8*, i8*, i8* } @debug = external constant i32 ; [#uses=0] diff --git a/test/Transforms/GVN/nonlocal.ll b/test/Transforms/GVN/nonlocal.ll index d93223131d7..1618d05efb5 100644 --- a/test/Transforms/GVN/nonlocal.ll +++ b/test/Transforms/GVN/nonlocal.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%DEAD = phi i32. } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =} define i32 @main(i32** %p) { block1: diff --git a/test/Transforms/GVN/rle-must-alias.ll b/test/Transforms/GVN/rle-must-alias.ll index d23623e460c..e507556fe1f 100644 --- a/test/Transforms/GVN/rle-must-alias.ll +++ b/test/Transforms/GVN/rle-must-alias.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD.rle = phi i32} ; The %7 and %4 loads combine to make %DEAD unneeded. target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" target triple = "i386-apple-darwin7" diff --git a/test/Transforms/GVN/semidominated.ll b/test/Transforms/GVN/semidominated.ll index 5c11b06e732..95ee56a39c0 100644 --- a/test/Transforms/GVN/semidominated.ll +++ b/test/Transforms/GVN/semidominated.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 } +; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =} define i32 @main(i32* %p) { block1: