[llvm] r177445 - Update global merge pass according to Duncan's advices:

Quentin Colombet qcolombet at apple.com
Tue Mar 19 14:46:50 PDT 2013


Author: qcolombet
Date: Tue Mar 19 16:46:49 2013
New Revision: 177445

URL: http://llvm.org/viewvc/llvm-project?rev=177445&view=rev
Log:
Update global merge pass according to Duncan's advices:
- Remove useless includes
- Change misleading comments
- Move code into doFinalization

Modified:
    llvm/trunk/lib/Transforms/Scalar/GlobalMerge.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/GlobalMerge.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GlobalMerge.cpp?rev=177445&r1=177444&r2=177445&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GlobalMerge.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GlobalMerge.cpp Tue Mar 19 16:46:49 2013
@@ -61,10 +61,8 @@
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/GlobalVariable.h"
-#include "llvm/IR/InlineAsm.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/Intrinsics.h"
-#include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/Module.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
@@ -101,7 +99,7 @@ namespace {
     /// Collect every variables marked as "used"
     void collectUsedGlobalVariables(Module &M);
 
-    /// Keep track of the GlobalVariable that are marked as "used"
+    /// Keep track of the GlobalVariable that must not be merged away
     SmallPtrSet<const GlobalVariable *, 16> MustKeepGlobalVariables;
 
   public:
@@ -113,6 +111,7 @@ namespace {
 
     virtual bool doInitialization(Module &M);
     virtual bool runOnFunction(Function &F);
+    virtual bool doFinalization(Module &M);
 
     const char *getPassName() const {
       return "Merge internal globals";
@@ -211,9 +210,6 @@ void GlobalMerge::collectUsedGlobalVaria
 }
 
 void GlobalMerge::setMustKeepGlobalVariables(Module &M) {
-  // If we already processed a Module, UsedGlobalVariables may have been
-  // populated. Reset the information for this module.
-  MustKeepGlobalVariables.clear();
   collectUsedGlobalVariables(M);
 
   for (Module::iterator IFn = M.begin(), IEndFn = M.end(); IFn != IEndFn;
@@ -268,8 +264,6 @@ bool GlobalMerge::doInitialization(Modul
       continue;
 
     // Ignore all "required" globals:
-    // - the ones used for EH
-    // - the ones marked with "used" attribute
     if (isMustKeepGlobalVariable(I))
       continue;
 
@@ -307,6 +301,11 @@ bool GlobalMerge::runOnFunction(Function
   return false;
 }
 
+bool GlobalMerge::doFinalization(Module &M) {
+  MustKeepGlobalVariables.clear();
+  return false;
+}
+
 Pass *llvm::createGlobalMergePass(const TargetLowering *tli) {
   return new GlobalMerge(tli);
 }





More information about the llvm-commits mailing list