[llvm-commits] [llvm] r61023 - in /llvm/trunk: lib/Transforms/Scalar/GVN.cpp test/Transforms/GVN/2007-07-26-InterlockingLoops.ll test/Transforms/GVN/2007-07-26-PhiErasure.ll test/Transforms/GVN/2007-07-31-NoDomInherit.ll test/Transforms/GVN/rle-dominated.ll test/Transforms/GVN/rle-must-alias.ll test/Transforms/GVN/rle-nonlocal.ll test/Transforms/GVN/rle-phi-translate.ll test/Transforms/GVN/rle-semidominated.ll

Chris Lattner sabre at nondot.org
Sun Dec 14 19:46:39 PST 2008


Author: lattner
Date: Sun Dec 14 21:46:38 2008
New Revision: 61023

URL: http://llvm.org/viewvc/llvm-project?rev=61023&view=rev
Log:
make GVN try to rename inputs to the resultant replaced values, which
cleans up the generated code a bit.  This should have the added benefit of
not randomly renaming functions/globals like my previous patch did. :)

Modified:
    llvm/trunk/lib/Transforms/Scalar/GVN.cpp
    llvm/trunk/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll
    llvm/trunk/test/Transforms/GVN/2007-07-26-PhiErasure.ll
    llvm/trunk/test/Transforms/GVN/2007-07-31-NoDomInherit.ll
    llvm/trunk/test/Transforms/GVN/rle-dominated.ll
    llvm/trunk/test/Transforms/GVN/rle-must-alias.ll
    llvm/trunk/test/Transforms/GVN/rle-nonlocal.ll
    llvm/trunk/test/Transforms/GVN/rle-phi-translate.ll
    llvm/trunk/test/Transforms/GVN/rle-semidominated.ll

Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Sun Dec 14 21:46:38 2008
@@ -1040,6 +1040,9 @@
     // Perform PHI construction.
     Value* v = GetValueForBlock(LI->getParent(), LI, BlockReplValues, true);
     LI->replaceAllUsesWith(v);
+    
+    if (!isa<GlobalValue>(v))
+      v->takeName(LI);
     if (isa<PointerType>(v->getType()))
       MD->invalidateCachedPointerInfo(v);
     toErase.push_back(LI);
@@ -1135,7 +1138,8 @@
   // Perform PHI construction.
   Value* v = GetValueForBlock(LI->getParent(), LI, BlockReplValues, true);
   LI->replaceAllUsesWith(v);
-  v->takeName(LI);
+  if (!isa<GlobalValue>(v))
+    v->takeName(LI);
   if (isa<PointerType>(v->getType()))
     MD->invalidateCachedPointerInfo(v);
   toErase.push_back(LI);

Modified: llvm/trunk/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll (original)
+++ llvm/trunk/test/Transforms/GVN/2007-07-26-InterlockingLoops.ll Sun Dec 14 21:46:38 2008
@@ -1,5 +1,5 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp17625 =}
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp17631 =}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17625 = phi i32. }
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp17631.* = phi i32. }
 
 @last = external global [65 x i32*]		; <[65 x i32*]*> [#uses=1]
 

Modified: llvm/trunk/test/Transforms/GVN/2007-07-26-PhiErasure.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2007-07-26-PhiErasure.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/2007-07-26-PhiErasure.ll (original)
+++ llvm/trunk/test/Transforms/GVN/2007-07-26-PhiErasure.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp298316 =}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp298316 = phi i32 }
 
 	%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 }

Modified: llvm/trunk/test/Transforms/GVN/2007-07-31-NoDomInherit.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2007-07-31-NoDomInherit.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/2007-07-31-NoDomInherit.ll (original)
+++ llvm/trunk/test/Transforms/GVN/2007-07-31-NoDomInherit.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep tmp51.rle
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {tmp47 = phi i32 }
 
 	%struct.anon = type { i32 (i32, i32, i32)*, i32, i32, [3 x i32], i8*, i8*, i8* }
 @debug = external constant i32		; <i32*> [#uses=0]

Modified: llvm/trunk/test/Transforms/GVN/rle-dominated.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle-dominated.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/rle-dominated.ll (original)
+++ llvm/trunk/test/Transforms/GVN/rle-dominated.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep DEAD
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep load | count 2
 
 define i32 @main(i32** %p) {
 block1:
@@ -14,7 +14,7 @@
   br label %block4
 
 block4:
-  %DEAD = load i32** %p
-  %c = load i32* %DEAD
-  ret i32 %c
+  %c = load i32** %p
+  %d = load i32* %c
+  ret i32 %d
 }

Modified: llvm/trunk/test/Transforms/GVN/rle-must-alias.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle-must-alias.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/rle-must-alias.ll (original)
+++ llvm/trunk/test/Transforms/GVN/rle-must-alias.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD.rle = phi i32}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 }
 ; XFAIL: *
 
 ; FIXME: GVN should eliminate the fully redundant %9 GEP which 

Modified: llvm/trunk/test/Transforms/GVN/rle-nonlocal.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle-nonlocal.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/rle-nonlocal.ll (original)
+++ llvm/trunk/test/Transforms/GVN/rle-nonlocal.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%DEAD = phi i32. }
 
 define i32 @main(i32** %p) {
 block1:

Modified: llvm/trunk/test/Transforms/GVN/rle-phi-translate.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle-phi-translate.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/rle-phi-translate.ll (original)
+++ llvm/trunk/test/Transforms/GVN/rle-phi-translate.ll Sun Dec 14 21:46:38 2008
@@ -1,5 +1,5 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%cv.rle = phi i32}
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%bv.rle = phi i32}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%cv = phi i32}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {%bv = phi i32}
 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"
 

Modified: llvm/trunk/test/Transforms/GVN/rle-semidominated.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/rle-semidominated.ll?rev=61023&r1=61022&r2=61023&view=diff

==============================================================================
--- llvm/trunk/test/Transforms/GVN/rle-semidominated.ll (original)
+++ llvm/trunk/test/Transforms/GVN/rle-semidominated.ll Sun Dec 14 21:46:38 2008
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {DEAD =}
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | grep {DEAD = phi i32 }
 
 define i32 @main(i32* %p) {
 block1:





More information about the llvm-commits mailing list