Add support for name mangling.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 28 Oct 2001 21:23:44 +0000 (21:23 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 28 Oct 2001 21:23:44 +0000 (21:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@998 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Linker.h
include/llvm/Support/Linker.h
include/llvm/Transforms/Utils/Linker.h

index ea981f565287d5eb08a9e6b787eda9fc7d8b09c8..8774012f152526d1b8e0e2b424fad22ae3642d4a 100644 (file)
@@ -9,12 +9,29 @@
 
 #include <string>
 class Module;
+class Type;
+class Value;
+
 
 // LinkModules - This function links two modules together, with the resulting
 // left module modified to be the composite of the two input modules.  If an
 // error occurs, true is returned and ErrorMsg (if not null) is set to indicate
 // the problem.
 //
-bool LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+bool    LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+
+
+// MangleTypeName - Implement a consistent name-mangling scheme for
+//                  a given type.
+// 
+string MangleTypeName(const Type* type);
+
+
+// MangleName - implement a consistent name-mangling scheme for all
+// externally visible (i.e., global) objects.
+// privateName should be unique within the module.
+// 
+string  MangleName(const string& privateName, const Value* V);
+
 
 #endif
index ea981f565287d5eb08a9e6b787eda9fc7d8b09c8..8774012f152526d1b8e0e2b424fad22ae3642d4a 100644 (file)
@@ -9,12 +9,29 @@
 
 #include <string>
 class Module;
+class Type;
+class Value;
+
 
 // LinkModules - This function links two modules together, with the resulting
 // left module modified to be the composite of the two input modules.  If an
 // error occurs, true is returned and ErrorMsg (if not null) is set to indicate
 // the problem.
 //
-bool LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+bool    LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+
+
+// MangleTypeName - Implement a consistent name-mangling scheme for
+//                  a given type.
+// 
+string MangleTypeName(const Type* type);
+
+
+// MangleName - implement a consistent name-mangling scheme for all
+// externally visible (i.e., global) objects.
+// privateName should be unique within the module.
+// 
+string  MangleName(const string& privateName, const Value* V);
+
 
 #endif
index ea981f565287d5eb08a9e6b787eda9fc7d8b09c8..8774012f152526d1b8e0e2b424fad22ae3642d4a 100644 (file)
@@ -9,12 +9,29 @@
 
 #include <string>
 class Module;
+class Type;
+class Value;
+
 
 // LinkModules - This function links two modules together, with the resulting
 // left module modified to be the composite of the two input modules.  If an
 // error occurs, true is returned and ErrorMsg (if not null) is set to indicate
 // the problem.
 //
-bool LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+bool    LinkModules(Module *Dest, const Module *Src, string *ErrorMsg = 0);
+
+
+// MangleTypeName - Implement a consistent name-mangling scheme for
+//                  a given type.
+// 
+string MangleTypeName(const Type* type);
+
+
+// MangleName - implement a consistent name-mangling scheme for all
+// externally visible (i.e., global) objects.
+// privateName should be unique within the module.
+// 
+string  MangleName(const string& privateName, const Value* V);
+
 
 #endif