Remove attribution from file headers, per discussion on llvmdev.
[oota-llvm.git] / lib / Transforms / IPO / StripSymbols.cpp
index 2a5e8309296eddce7b72c6bdecf06868346327c3..9427eb67824fef300e17ba75be960d3c26ab7226 100644 (file)
@@ -2,23 +2,21 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
-// This file implements stripping symbols out of symbol tables.
+// The StripSymbols transformation implements code stripping. Specifically, it
+// can delete:
+// 
+//   * names for virtual registers
+//   * symbols for internal globals and functions
+//   * debug information
 //
-// Specifically, this allows you to strip all of the symbols out of:
-//   * All functions in a module
-//   * All non-essential symbols in a module (all function symbols + all module
-//     scope symbols)
-//   * Debug information.
-//
-// Notice that:
-//   * This pass makes code much less readable, so it should only be used in
-//     situations where the 'strip' utility would be used (such as reducing
-//     code size, and making it harder to reverse engineer code).
+// Note that this transformation makes code much less readable, so it should
+// only be used in situations where the 'strip' utility would be used, such as
+// reducing code size or making it harder to reverse engineer code.
 //
 //===----------------------------------------------------------------------===//
 
@@ -37,7 +35,9 @@ namespace {
   class VISIBILITY_HIDDEN StripSymbols : public ModulePass {
     bool OnlyDebugInfo;
   public:
-    StripSymbols(bool ODI = false) : OnlyDebugInfo(ODI) {}
+    static char ID; // Pass identification, replacement for typeid
+    explicit StripSymbols(bool ODI = false) 
+      : ModulePass((intptr_t)&ID), OnlyDebugInfo(ODI) {}
 
     virtual bool runOnModule(Module &M);
 
@@ -45,6 +45,8 @@ namespace {
       AU.setPreservesAll();
     }
   };
+
+  char StripSymbols::ID = 0;
   RegisterPass<StripSymbols> X("strip", "Strip all symbols from a module");
 }