Split AllOpts.h into lots of little .h files.
[oota-llvm.git] / include / llvm / Transforms / Scalar / SymbolStripping.h
1 //===-- SymbolStripping.h - Functions that Strip Symbol Tables ---*- C++ -*--=//
2 //
3 // This family of functions removes symbols from the symbol tables of methods
4 // and classes.
5 //
6 //===----------------------------------------------------------------------===//
7
8 #ifndef LLVM_OPT_SYMBOL_STRIPPING_H
9 #define LLVM_OPT_SYMBOL_STRIPPING_H
10
11 class Method;
12 class Module;
13
14 namespace opt {
15
16 // DoSymbolStripping - Remove all symbolic information from a method
17 //
18 bool DoSymbolStripping(Method *M);
19
20 // DoSymbolStripping - Remove all symbolic information from all methods in a 
21 // module
22 //
23 static inline bool DoSymbolStripping(Module *M) { 
24   return M->reduceApply(DoSymbolStripping); 
25 }
26
27 // DoFullSymbolStripping - Remove all symbolic information from all methods 
28 // in a module, and all module level symbols. (method names, etc...)
29 //
30 bool DoFullSymbolStripping(Module *M);
31
32 } // End namespace opt 
33 #endif