[llvm-commits] [llvm] r159546 - in /llvm/trunk: lib/Transforms/IPO/GlobalOpt.cpp test/Transforms/GlobalOpt/unnamed-addr.ll

Duncan Sands baldrick at free.fr
Mon Jul 2 11:55:40 PDT 2012


Author: baldrick
Date: Mon Jul  2 13:55:39 2012
New Revision: 159546

URL: http://llvm.org/viewvc/llvm-project?rev=159546&view=rev
Log:
GlobalOpt forgot to handle bitcast when analyzing globals.  Found by inspection.

Modified:
    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
    llvm/trunk/test/Transforms/GlobalOpt/unnamed-addr.ll

Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=159546&r1=159545&r2=159546&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Mon Jul  2 13:55:39 2012
@@ -254,6 +254,8 @@
             GS.StoredType = GlobalStatus::isStored;
           }
         }
+      } else if (isa<BitCastInst>(I)) {
+        if (AnalyzeGlobal(I, GS, PHIUsers)) return true;
       } else if (isa<GetElementPtrInst>(I)) {
         if (AnalyzeGlobal(I, GS, PHIUsers)) return true;
       } else if (isa<SelectInst>(I)) {

Modified: llvm/trunk/test/Transforms/GlobalOpt/unnamed-addr.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GlobalOpt/unnamed-addr.ll?rev=159546&r1=159545&r2=159546&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/GlobalOpt/unnamed-addr.ll (original)
+++ llvm/trunk/test/Transforms/GlobalOpt/unnamed-addr.ll Mon Jul  2 13:55:39 2012
@@ -26,7 +26,9 @@
 entry:
   %arrayidx4 = getelementptr inbounds [4 x i8]* @d, i64 0, i64 %i
   %tmp5 = load i8* %arrayidx4, align 1
-  %cmp = icmp eq i8 %tmp5, 42
+  %array0 = bitcast [4 x i8]* @d to i8*
+  %tmp6 = load i8* %array0, align 1
+  %cmp = icmp eq i8 %tmp5, %tmp6
   ret i1 %cmp
 }
 





More information about the llvm-commits mailing list