* Clean up code a little bit
[oota-llvm.git] / lib / Transforms / Scalar / SymbolStripping.cpp
index cc0852e7d166a2101da0e48b9e79fb6d0afec88b..2f3d1aad6a8a70959301a375fd6a922bd92e9022 100644 (file)
@@ -42,41 +42,24 @@ static bool StripSymbolTable(SymbolTable *SymTab) {
   return RemovedSymbol;
 }
 
-
-// DoSymbolStripping - Remove all symbolic information from a function
-//
-static bool doSymbolStripping(Function *F) {
-  return StripSymbolTable(F->getSymbolTable());
-}
-
-// doStripGlobalSymbols - Remove all symbolic information from all functions 
-// in a module, and all module level symbols. (function names, etc...)
-//
-static bool doStripGlobalSymbols(Module *M) {
-  // Remove all symbols from functions in this module... and then strip all of
-  // the symbols in this module...
-  //  
-  return StripSymbolTable(M->getSymbolTable());
-}
-
 namespace {
   struct SymbolStripping : public FunctionPass {
-    const char *getPassName() const { return "Strip Symbols from Functions"; }
-
-    virtual bool runOnFunction(Function *F) {
-      return doSymbolStripping(F);
+    virtual bool runOnFunction(Function &F) {
+      return StripSymbolTable(F.getSymbolTable());
     }
     virtual void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.setPreservesAll();
     }
   };
+  RegisterOpt<SymbolStripping> X("strip", "Strip symbols from functions");
 
   struct FullSymbolStripping : public SymbolStripping {
-    const char *getPassName() const { return "Strip Symbols from Module"; }
-    virtual bool doInitialization(Module *M) {
-      return doStripGlobalSymbols(M);
+    virtual bool doInitialization(Module &M) {
+      return StripSymbolTable(M.getSymbolTable());
     }
   };
+  RegisterOpt<FullSymbolStripping> Y("mstrip",
+                                     "Strip symbols from module and functions");
 }
 
 Pass *createSymbolStrippingPass() {