Removed unused, useless header file.
[oota-llvm.git] / include / llvm / Support / Mangler.h
index 533b44f5256d602544846a71ef7b936477ac871e..2528420d47d479894bef7ec9e6ada0f6a480a81d 100644 (file)
@@ -1,27 +1,54 @@
-//===-- Mangler.h - Self-contained c/asm llvm name mangler -*- C++ -*- ----===//
+//===-- Mangler.h - Self-contained llvm name mangler ------------*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
 //
-// Unified name mangler for CWriter and assembly backends.
+// 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.
+// 
+//===----------------------------------------------------------------------===//
+//
+// Unified name mangler for various backends.
 //
 //===----------------------------------------------------------------------===//
 
 #ifndef LLVM_SUPPORT_MANGLER_H
 #define LLVM_SUPPORT_MANGLER_H
 
-class Value;
-class Module;
 #include <map>
 #include <set>
 #include <string>
 
+namespace llvm {
+class Value;
+class Module;
+class GlobalValue;
+
 class Mangler {
+  /// This keeps track of which global values have had their names
+  /// mangled in the current module.
+  ///
+  std::set<const Value *> MangledGlobals;
+
+  Module &M;
+  bool AddUnderscorePrefix;
+
+  typedef std::map<const Value *, std::string> ValueMap;
+  ValueMap Memo;
+
+  unsigned Count;
+
+  void InsertName(GlobalValue *GV, std::map<std::string, GlobalValue*> &Names);
 public:
+
+  // Mangler ctor - if AddUnderscorePrefix is true, then all public global
+  // symbols will be prefixed with an underscore.
+  Mangler(Module &M, bool AddUnderscorePrefix = false);
+
   /// getValueName - Returns the mangled name of V, an LLVM Value,
   /// in the current module.
   ///
   std::string getValueName(const Value *V);
 
-  Mangler(Module &M_);
-
   /// makeNameProper - We don't want identifier names with ., space, or
   /// - in them, so we mangle these characters into the strings "d_",
   /// "s_", and "D_", respectively. This is a very simple mangling that
@@ -30,19 +57,8 @@ public:
   /// from getValueName.
   /// 
   static std::string makeNameProper(const std::string &x);
-
-private:
-  /// This keeps track of which global values have had their names
-  /// mangled in the current module.
-  ///
-  std::set<const Value *> MangledGlobals;
-
-  Module &M;
-
-  typedef std::map<const Value *, std::string> ValueMap;
-  ValueMap Memo;
-
-  unsigned int Count;
 };
 
+} // End llvm namespace
+
 #endif // LLVM_SUPPORT_MANGLER_H