<div dir="ltr"><div>Rafael,</div><div><br></div>FWIW this commit appears to change the name mangling behavior for a Module with the default DataLayout, by removing the leading underscore in the symbol name, when constructing an object file through TargetMachine::addPassesToEmitFile.<div><br></div><div>I noticed this because this commit exposed a bug in my own code where I hadn't explicitly set the DataLayout. Just wanted to give a heads up in case this wasn't intended!</div><div><br></div><div>v/r,</div><div>Josh</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 23, 2015 at 9:59 AM, Rafael Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rafael<br>
Date: Tue Jun 23 08:59:29 2015<br>
New Revision: 240405<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D240405-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=eccJ1HQM5YCBv8ci3bnMtu4vtDhaSB7mKRHfJgVl5Xg&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=240405&view=rev</a><br>
Log:<br>
Simplify the Mangler interface now that DataLayout is mandatory.<br>
<br>
We only need to pass in a DataLayout when mangling a raw string, not when<br>
constructing the mangler.<br>
<br>
Modified:<br>
    llvm/trunk/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp<br>
    llvm/trunk/examples/Kaleidoscope/Orc/initial/toy.cpp<br>
    llvm/trunk/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp<br>
    llvm/trunk/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp<br>
    llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h<br>
    llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h<br>
    llvm/trunk/include/llvm/IR/Mangler.h<br>
    llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp<br>
    llvm/trunk/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp<br>
    llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp<br>
    llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp<br>
    llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h<br>
    llvm/trunk/lib/IR/Mangler.cpp<br>
    llvm/trunk/lib/LTO/LTOCodeGenerator.cpp<br>
    llvm/trunk/lib/Object/IRObjectFile.cpp<br>
    llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp<br>
    llvm/trunk/lib/Target/PowerPC/PPCMCInstLower.cpp<br>
    llvm/trunk/lib/Target/X86/X86MCInstLower.cpp<br>
    llvm/trunk/tools/lli/OrcLazyJIT.h<br>
<br>
Modified: llvm/trunk/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_examples_Kaleidoscope_Orc_fully-5Flazy_toy.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=gmHZ2GBtXZ9sDPiLeVhtdR6qvZfu3UarmMVUCeoQHsU&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp (original)<br>
+++ llvm/trunk/examples/Kaleidoscope/Orc/fully_lazy/toy.cpp Tue Jun 23 08:59:29 2015<br>
@@ -1168,7 +1168,6 @@ public:<br>
<br>
   KaleidoscopeJIT(SessionContext &Session)<br>
     : Session(Session),<br>
-      Mang(Session.getTarget().getDataLayout()),<br>
       CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())),<br>
       LazyEmitLayer(CompileLayer),<br>
       CompileCallbacks(LazyEmitLayer, CCMgrMemMgr, Session.getLLVMContext(),<br>
@@ -1179,7 +1178,8 @@ public:<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name,<br>
+                                 *Session.getTarget().getDataLayout());<br>
     }<br>
     return MangledName;<br>
   }<br>
@@ -1306,7 +1306,6 @@ private:<br>
   }<br>
<br>
   SessionContext &Session;<br>
-  Mangler Mang;<br>
   SectionMemoryManager CCMgrMemMgr;<br>
   ObjLayerT ObjectLayer;<br>
   CompileLayerT CompileLayer;<br>
<br>
Modified: llvm/trunk/examples/Kaleidoscope/Orc/initial/toy.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_examples_Kaleidoscope_Orc_initial_toy.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=s2DWJFPbfhbidBG20u2tuORxma4OjGBGD_tTZ77VhZU&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Orc/initial/toy.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/examples/Kaleidoscope/Orc/initial/toy.cpp (original)<br>
+++ llvm/trunk/examples/Kaleidoscope/Orc/initial/toy.cpp Tue Jun 23 08:59:29 2015<br>
@@ -1160,14 +1160,14 @@ public:<br>
   typedef CompileLayerT::ModuleSetHandleT ModuleHandleT;<br>
<br>
   KaleidoscopeJIT(SessionContext &Session)<br>
-    : Mang(Session.getTarget().getDataLayout()),<br>
-      CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())) {}<br>
+      : DL(*Session.getTarget().getDataLayout()),<br>
+        CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())) {}<br>
<br>
   std::string mangle(const std::string &Name) {<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name, DL);<br>
     }<br>
     return MangledName;<br>
   }<br>
@@ -1201,8 +1201,7 @@ public:<br>
   }<br>
<br>
 private:<br>
-<br>
-  Mangler Mang;<br>
+  const DataLayout &DL;<br>
   ObjLayerT ObjectLayer;<br>
   CompileLayerT CompileLayer;<br>
 };<br>
<br>
Modified: llvm/trunk/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_examples_Kaleidoscope_Orc_lazy-5Fcodegen_toy.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=AmyGP_SFTNlcmxXw4JksfcxigJv97dmMg7IsHVqIABc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp (original)<br>
+++ llvm/trunk/examples/Kaleidoscope/Orc/lazy_codegen/toy.cpp Tue Jun 23 08:59:29 2015<br>
@@ -1162,15 +1162,15 @@ public:<br>
   typedef LazyEmitLayerT::ModuleSetHandleT ModuleHandleT;<br>
<br>
   KaleidoscopeJIT(SessionContext &Session)<br>
-    : Mang(Session.getTarget().getDataLayout()),<br>
-      CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())),<br>
-      LazyEmitLayer(CompileLayer) {}<br>
+      : DL(*Session.getTarget().getDataLayout()),<br>
+        CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())),<br>
+        LazyEmitLayer(CompileLayer) {}<br>
<br>
   std::string mangle(const std::string &Name) {<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name, DL);<br>
     }<br>
     return MangledName;<br>
   }<br>
@@ -1204,8 +1204,7 @@ public:<br>
   }<br>
<br>
 private:<br>
-<br>
-  Mangler Mang;<br>
+  const DataLayout &DL;<br>
   ObjLayerT ObjectLayer;<br>
   CompileLayerT CompileLayer;<br>
   LazyEmitLayerT LazyEmitLayer;<br>
<br>
Modified: llvm/trunk/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_examples_Kaleidoscope_Orc_lazy-5Firgen_toy.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=jTk2swIDFGigco_zS-fmiVcosGyXqS-w8cutW0psVVI&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp (original)<br>
+++ llvm/trunk/examples/Kaleidoscope/Orc/lazy_irgen/toy.cpp Tue Jun 23 08:59:29 2015<br>
@@ -1162,7 +1162,6 @@ public:<br>
<br>
   KaleidoscopeJIT(SessionContext &Session)<br>
     : Session(Session),<br>
-      Mang(Session.getTarget().getDataLayout()),<br>
       CompileLayer(ObjectLayer, SimpleCompiler(Session.getTarget())),<br>
       LazyEmitLayer(CompileLayer) {}<br>
<br>
@@ -1170,7 +1169,8 @@ public:<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name,<br>
+                                 *Session.getTarget().getDataLayout());<br>
     }<br>
     return MangledName;<br>
   }<br>
@@ -1236,7 +1236,6 @@ private:<br>
   }<br>
<br>
   SessionContext &Session;<br>
-  Mangler Mang;<br>
   ObjLayerT ObjectLayer;<br>
   CompileLayerT CompileLayer;<br>
   LazyEmitLayerT LazyEmitLayer;<br>
<br>
Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_ExecutionEngine_Orc_CompileOnDemandLayer.h-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=iYLeEhF_NkhsXgN46RqKqPrecJQculiUkFuVtBXdIZA&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (original)<br>
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h Tue Jun 23 08:59:29 2015<br>
@@ -241,11 +241,10 @@ private:<br>
   }<br>
<br>
   static std::string Mangle(StringRef Name, const DataLayout &DL) {<br>
-    Mangler M(&DL);<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      M.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name, DL);<br>
     }<br>
     return MangledName;<br>
   }<br>
<br>
Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_ExecutionEngine_Orc_LazyEmittingLayer.h-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=BJWXUdgj0K0EbA7X5RBVGGCm3GcQthg_MCJRZ6_3WHQ&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h (original)<br>
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h Tue Jun 23 08:59:29 2015<br>
@@ -193,7 +193,7 @@ private:<br>
       auto Symbols = llvm::make_unique<StringMap<const GlobalValue*>>();<br>
<br>
       for (const auto &M : Ms) {<br>
-        Mangler Mang(&M->getDataLayout());<br>
+        Mangler Mang;<br>
<br>
         for (const auto &V : M->globals())<br>
           if (auto GV = addGlobalValue(*Symbols, V, Mang, SearchName,<br>
<br>
Modified: llvm/trunk/include/llvm/IR/Mangler.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_IR_Mangler.h-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=_-dDAopn8ViTVyjJWKi1ZeTWrYhdHQnrhBFylIOUrGw&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/Mangler.h?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/IR/Mangler.h (original)<br>
+++ llvm/trunk/include/llvm/IR/Mangler.h Tue Jun 23 08:59:29 2015<br>
@@ -33,8 +33,6 @@ public:<br>
   };<br>
<br>
 private:<br>
-  const DataLayout *DL;<br>
-<br>
   /// We need to give global values the same name every time they are mangled.<br>
   /// This keeps track of the number we give to anonymous ones.<br>
   mutable DenseMap<const GlobalValue*, unsigned> AnonGlobalIDs;<br>
@@ -43,15 +41,11 @@ private:<br>
   mutable unsigned NextAnonGlobalID;<br>
<br>
 public:<br>
-  Mangler(const DataLayout *DL) : DL(DL), NextAnonGlobalID(1) {}<br>
+  Mangler() : NextAnonGlobalID(1) {}<br>
<br>
   /// Print the appropriate prefix and the specified global variable's name.<br>
   /// If the global variable doesn't have a name, this fills in a unique name<br>
   /// for the global.<br>
-<br>
-  static void getNameWithPrefix(SmallVectorImpl<char> &OutName,<br>
-                                const Twine &GVName, const DataLayout &DL);<br>
-<br>
   void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV,<br>
                          bool CannotUsePrivateLabel) const;<br>
   void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV,<br>
@@ -59,10 +53,12 @@ public:<br>
<br>
   /// Print the appropriate prefix and the specified name as the global variable<br>
   /// name. GVName must not be empty.<br>
-  void getNameWithPrefix(raw_ostream &OS, const Twine &GVName,<br>
-                         ManglerPrefixTy PrefixTy = Mangler::Default) const;<br>
-  void getNameWithPrefix(SmallVectorImpl<char> &OutName, const Twine &GVName,<br>
-                         ManglerPrefixTy PrefixTy = Mangler::Default) const;<br>
+  static void getNameWithPrefix(raw_ostream &OS, const Twine &GVName,<br>
+                                const DataLayout &DL,<br>
+                                ManglerPrefixTy PrefixTy = Mangler::Default);<br>
+  static void getNameWithPrefix(SmallVectorImpl<char> &OutName,<br>
+                                const Twine &GVName, const DataLayout &DL,<br>
+                                ManglerPrefixTy PrefixTy = Mangler::Default);<br>
 };<br>
<br>
 } // End llvm namespace<br>
<br>
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_AsmPrinter_AsmPrinter.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=0HiZwc_pPZ5-oaPQwuoTmcCVdhsDo1_IJL0PAnyoW5I&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Tue Jun 23 08:59:29 2015<br>
@@ -179,7 +179,7 @@ bool AsmPrinter::doInitialization(Module<br>
<br>
   OutStreamer->InitSections(false);<br>
<br>
-  Mang = new Mangler(TM.getDataLayout());<br>
+  Mang = new Mangler();<br>
<br>
   // Emit the version-min deplyment target directive if needed.<br>
   //<br>
@@ -2292,11 +2292,10 @@ MCSymbol *AsmPrinter::getSymbolWithGloba<br>
                                                            TM);<br>
 }<br>
<br>
-/// GetExternalSymbolSymbol - Return the MCSymbol for the specified<br>
-/// ExternalSymbol.<br>
+/// Return the MCSymbol for the specified ExternalSymbol.<br>
 MCSymbol *AsmPrinter::GetExternalSymbolSymbol(StringRef Sym) const {<br>
   SmallString<60> NameStr;<br>
-  Mang->getNameWithPrefix(NameStr, Sym);<br>
+  Mangler::getNameWithPrefix(NameStr, Sym, *TM.getDataLayout());<br>
   return OutContext.getOrCreateSymbol(NameStr);<br>
 }<br>
<br>
<br>
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_AsmPrinter_OcamlGCPrinter.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=7XuY1RION9wDQ_Ko7_ESi5ohObQhKHhg6jWSWzAC_E8&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp Tue Jun 23 08:59:29 2015<br>
@@ -58,7 +58,7 @@ static void EmitCamlGlobal(const Module<br>
   SymName[Letter] = toupper(SymName[Letter]);<br>
<br>
   SmallString<128> TmpStr;<br>
-  AP.Mang->getNameWithPrefix(TmpStr, SymName);<br>
+  Mangler::getNameWithPrefix(TmpStr, SymName, M.getDataLayout());<br>
<br>
   MCSymbol *Sym = AP.OutContext.getOrCreateSymbol(TmpStr);<br>
<br>
<br>
Modified: llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_ExecutionEngine_ExecutionEngine.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=8za8R5JVfNN0M_yBYKq-N-dmLHYOui1qUQYGMXSdUjg&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp (original)<br>
+++ llvm/trunk/lib/ExecutionEngine/ExecutionEngine.cpp Tue Jun 23 08:59:29 2015<br>
@@ -181,9 +181,9 @@ uint64_t ExecutionEngineState::RemoveMap<br>
<br>
 std::string ExecutionEngine::getMangledName(const GlobalValue *GV) {<br>
   MutexGuard locked(lock);<br>
-  Mangler Mang(DL);<br>
+  Mangler Mang;<br>
   SmallString<128> FullName;<br>
-  Mang.getNameWithPrefix(FullName, GV->getName());<br>
+  Mang.getNameWithPrefix(FullName, GV, false);<br>
   return FullName.str();<br>
 }<br>
<br>
<br>
Modified: llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_ExecutionEngine_MCJIT_MCJIT.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=wG5gOD-z5FQV7PisO98h1GI-GL9DvZCXG2bzG7oL1XQ&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp (original)<br>
+++ llvm/trunk/lib/ExecutionEngine/MCJIT/MCJIT.cpp Tue Jun 23 08:59:29 2015<br>
@@ -264,9 +264,8 @@ void MCJIT::finalizeModule(Module *M) {<br>
 }<br>
<br>
 RuntimeDyld::SymbolInfo MCJIT::findExistingSymbol(const std::string &Name) {<br>
-  Mangler Mang(TM->getDataLayout());<br>
   SmallString<128> FullName;<br>
-  Mang.getNameWithPrefix(FullName, Name);<br>
+  Mangler::getNameWithPrefix(FullName, Name, *TM->getDataLayout());<br>
   return Dyld.getSymbol(FullName);<br>
 }<br>
<br>
@@ -369,7 +368,7 @@ uint64_t MCJIT::getFunctionAddress(const<br>
 void *MCJIT::getPointerToFunction(Function *F) {<br>
   MutexGuard locked(lock);<br>
<br>
-  Mangler Mang(TM->getDataLayout());<br>
+  Mangler Mang;<br>
   SmallString<128> Name;<br>
   TM->getNameWithPrefix(Name, F, Mang);<br>
<br>
<br>
Modified: llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_ExecutionEngine_Orc_OrcMCJITReplacement.h-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=8AVFgzR2oPrfiohqpdd4EC6-SVyyof-OPANdKIWDL_Q&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (original)<br>
+++ llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h Tue Jun 23 08:59:29 2015<br>
@@ -142,7 +142,6 @@ public:<br>
                     std::unique_ptr<TargetMachine> TM)<br>
       : TM(std::move(TM)), MemMgr(*this, std::move(MemMgr)),<br>
         Resolver(*this), ClientResolver(std::move(ClientResolver)),<br>
-        Mang(this->TM->getDataLayout()),<br>
         NotifyObjectLoaded(*this), NotifyFinalized(*this),<br>
         ObjectLayer(NotifyObjectLoaded, NotifyFinalized),<br>
         CompileLayer(ObjectLayer, SimpleCompiler(*this->TM)),<br>
@@ -311,7 +310,7 @@ private:<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mang.getNameWithPrefix(MangledNameStream, Name, *TM->getDataLayout());<br>
     }<br>
     return MangledName;<br>
   }<br>
<br>
Modified: llvm/trunk/lib/IR/Mangler.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_IR_Mangler.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=wpEvf0kLyNgW1FxvBr6VPNEq3Faa039_8yCn0LYBf_8&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Mangler.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/IR/Mangler.cpp (original)<br>
+++ llvm/trunk/lib/IR/Mangler.cpp Tue Jun 23 08:59:29 2015<br>
@@ -17,6 +17,7 @@<br>
 #include "llvm/IR/DataLayout.h"<br>
 #include "llvm/IR/DerivedTypes.h"<br>
 #include "llvm/IR/Function.h"<br>
+#include "llvm/IR/Module.h"<br>
 #include "llvm/Support/raw_ostream.h"<br>
 using namespace llvm;<br>
<br>
@@ -47,24 +48,18 @@ static void getNameWithPrefixImpl(raw_os<br>
 }<br>
<br>
 void Mangler::getNameWithPrefix(raw_ostream &OS, const Twine &GVName,<br>
-                                ManglerPrefixTy PrefixTy) const {<br>
-  char Prefix = DL->getGlobalPrefix();<br>
-  return getNameWithPrefixImpl(OS, GVName, PrefixTy, *DL, Prefix);<br>
-}<br>
-<br>
-void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,<br>
-                                const Twine &GVName, const DataLayout &DL) {<br>
-  raw_svector_ostream OS(OutName);<br>
+                                const DataLayout &DL,<br>
+                                ManglerPrefixTy PrefixTy) {<br>
   char Prefix = DL.getGlobalPrefix();<br>
-  return getNameWithPrefixImpl(OS, GVName, Mangler::Default, DL, Prefix);<br>
+  return getNameWithPrefixImpl(OS, GVName, PrefixTy, DL, Prefix);<br>
 }<br>
<br>
 void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,<br>
-                                const Twine &GVName,<br>
-                                ManglerPrefixTy PrefixTy) const {<br>
+                                const Twine &GVName, const DataLayout &DL,<br>
+                                ManglerPrefixTy PrefixTy) {<br>
   raw_svector_ostream OS(OutName);<br>
-  char Prefix = DL->getGlobalPrefix();<br>
-  return getNameWithPrefixImpl(OS, GVName, PrefixTy, *DL, Prefix);<br>
+  char Prefix = DL.getGlobalPrefix();<br>
+  return getNameWithPrefixImpl(OS, GVName, PrefixTy, DL, Prefix);<br>
 }<br>
<br>
 static bool hasByteCountSuffix(CallingConv::ID CC) {<br>
@@ -108,6 +103,7 @@ void Mangler::getNameWithPrefix(raw_ostr<br>
       PrefixTy = Mangler::Private;<br>
   }<br>
<br>
+  const DataLayout &DL = GV->getParent()->getDataLayout();<br>
   if (!GV->hasName()) {<br>
     // Get the ID for the global, assigning a new one if we haven't got one<br>
     // already.<br>
@@ -116,12 +112,12 @@ void Mangler::getNameWithPrefix(raw_ostr<br>
       ID = NextAnonGlobalID++;<br>
<br>
     // Must mangle the global into a unique ID.<br>
-    getNameWithPrefix(OS, "__unnamed_" + Twine(ID), PrefixTy);<br>
+    getNameWithPrefix(OS, "__unnamed_" + Twine(ID), DL, PrefixTy);<br>
     return;<br>
   }<br>
<br>
   StringRef Name = GV->getName();<br>
-  char Prefix = DL->getGlobalPrefix();<br>
+  char Prefix = DL.getGlobalPrefix();<br>
<br>
   // Mangle functions with Microsoft calling conventions specially.  Only do<br>
   // this mangling for x86_64 vectorcall and 32-bit x86.<br>
@@ -130,7 +126,7 @@ void Mangler::getNameWithPrefix(raw_ostr<br>
     MSFunc = nullptr; // Don't mangle when \01 is present.<br>
   CallingConv::ID CC =<br>
       MSFunc ? MSFunc->getCallingConv() : (unsigned)CallingConv::C;<br>
-  if (!DL->hasMicrosoftFastStdCallMangling() &&<br>
+  if (!DL.hasMicrosoftFastStdCallMangling() &&<br>
       CC != CallingConv::X86_VectorCall)<br>
     MSFunc = nullptr;<br>
   if (MSFunc) {<br>
@@ -140,7 +136,7 @@ void Mangler::getNameWithPrefix(raw_ostr<br>
       Prefix = '\0'; // vectorcall functions have no prefix.<br>
   }<br>
<br>
-  getNameWithPrefixImpl(OS, Name, PrefixTy, *DL, Prefix);<br>
+  getNameWithPrefixImpl(OS, Name, PrefixTy, DL, Prefix);<br>
<br>
   if (!MSFunc)<br>
     return;<br>
@@ -155,7 +151,7 @@ void Mangler::getNameWithPrefix(raw_ostr<br>
       // "Pure" variadic functions do not receive @0 suffix.<br>
       (!FT->isVarArg() || FT->getNumParams() == 0 ||<br>
        (FT->getNumParams() == 1 && MSFunc->hasStructRetAttr())))<br>
-    addByteCountSuffix(OS, MSFunc, *DL);<br>
+    addByteCountSuffix(OS, MSFunc, DL);<br>
 }<br>
<br>
 void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName,<br>
<br>
Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_LTO_LTOCodeGenerator.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=52q64TRMh5kjG_hp9kFjAPnhRnrUdHXMK3YFk-XsIaI&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)<br>
+++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Tue Jun 23 08:59:29 2015<br>
@@ -453,7 +453,7 @@ void LTOCodeGenerator::applyScopeRestric<br>
   passes.add(createVerifierPass());<br>
<br>
   // mark which symbols can not be internalized<br>
-  Mangler Mangler(TargetMach->getDataLayout());<br>
+  Mangler Mangler;<br>
   std::vector<const char*> MustPreserveList;<br>
   SmallPtrSet<GlobalValue*, 8> AsmUsed;<br>
   std::vector<StringRef> Libcalls;<br>
<br>
Modified: llvm/trunk/lib/Object/IRObjectFile.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Object_IRObjectFile.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=UuVRWjt06AhFEmd_qhYfDWyNQ0RCzbkUnIQcdTUMBG8&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/IRObjectFile.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Object/IRObjectFile.cpp (original)<br>
+++ llvm/trunk/lib/Object/IRObjectFile.cpp Tue Jun 23 08:59:29 2015<br>
@@ -37,9 +37,7 @@ using namespace object;<br>
<br>
 IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)<br>
     : SymbolicFile(Binary::ID_IR, Object), M(std::move(Mod)) {<br>
-  // Setup a mangler with the DataLayout.<br>
-  const DataLayout &DL = M->getDataLayout();<br>
-  Mang.reset(new Mangler(&DL));<br>
+  Mang.reset(new Mangler());<br>
<br>
   const std::string &InlineAsm = M->getModuleInlineAsm();<br>
   if (InlineAsm.empty())<br>
<br>
Modified: llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_NVPTX_NVPTXAsmPrinter.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=hviXlnV4vFStXNgAlF3nmSAJN7nqrtxg3KWAii3r0vY&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp (original)<br>
+++ llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp Tue Jun 23 08:59:29 2015<br>
@@ -826,7 +826,7 @@ bool NVPTXAsmPrinter::doInitialization(M<br>
   const_cast<TargetLoweringObjectFile &>(getObjFileLowering())<br>
       .Initialize(OutContext, TM);<br>
<br>
-  Mang = new Mangler(TM.getDataLayout());<br>
+  Mang = new Mangler();<br>
<br>
   // Emit header before any dwarf directives are emitted below.<br>
   emitHeader(M, OS1, STI);<br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/PPCMCInstLower.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_PowerPC_PPCMCInstLower.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=teL_thfZz8tLxj7QQneQHij573q4uMXLyAJrRrTMP38&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCMCInstLower.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/PowerPC/PPCMCInstLower.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/PPCMCInstLower.cpp Tue Jun 23 08:59:29 2015<br>
@@ -57,7 +57,7 @@ static MCSymbol *GetSymbolFromOperand(co<br>
<br>
   if (!MO.isGlobal()) {<br>
     assert(MO.isSymbol() && "Isn't a symbol reference");<br>
-    Mang->getNameWithPrefix(Name, MO.getSymbolName());<br>
+    Mangler::getNameWithPrefix(Name, MO.getSymbolName(), *DL);<br>
   } else {<br>
     const GlobalValue *GV = MO.getGlobal();<br>
     TM.getNameWithPrefix(Name, GV, *Mang);<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86MCInstLower.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_X86_X86MCInstLower.cpp-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=W8niY9UclPWGQIjTjM4Zh2zZGv_eN7vAi7nCC7blrZc&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86MCInstLower.cpp?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/X86MCInstLower.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86MCInstLower.cpp Tue Jun 23 08:59:29 2015<br>
@@ -159,7 +159,7 @@ GetSymbolFromOperand(const MachineOperan<br>
     const GlobalValue *GV = MO.getGlobal();<br>
     AsmPrinter.getNameWithPrefix(Name, GV);<br>
   } else if (MO.isSymbol()) {<br>
-    getMang()->getNameWithPrefix(Name, MO.getSymbolName());<br>
+    Mangler::getNameWithPrefix(Name, MO.getSymbolName(), *DL);<br>
   } else if (MO.isMBB()) {<br>
     assert(Suffix.empty());<br>
     Sym = MO.getMBB()->getSymbol();<br>
<br>
Modified: llvm/trunk/tools/lli/OrcLazyJIT.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_lli_OrcLazyJIT.h-3Frev-3D240405-26r1-3D240404-26r2-3D240405-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=KHDtXZgGZuSSjkHYrQrTwlASqozqwdG1UUZcYY4jpUA&s=YLs9SAeagySbpTmRv8Bi_9K7pxDj_8RVqd25M1Px9kk&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lli/OrcLazyJIT.h?rev=240405&r1=240404&r2=240405&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/lli/OrcLazyJIT.h (original)<br>
+++ llvm/trunk/tools/lli/OrcLazyJIT.h Tue Jun 23 08:59:29 2015<br>
@@ -50,7 +50,6 @@ public:<br>
   OrcLazyJIT(std::unique_ptr<TargetMachine> TM, LLVMContext &Context,<br>
              CallbackManagerBuilder &BuildCallbackMgr)<br>
     : TM(std::move(TM)),<br>
-      Mang(this->TM->getDataLayout()),<br>
       ObjectLayer(),<br>
       CompileLayer(ObjectLayer, orc::SimpleCompiler(*this->TM)),<br>
       IRDumpLayer(CompileLayer, createDebugDumper()),<br>
@@ -137,7 +136,7 @@ private:<br>
     std::string MangledName;<br>
     {<br>
       raw_string_ostream MangledNameStream(MangledName);<br>
-      Mang.getNameWithPrefix(MangledNameStream, Name);<br>
+      Mangler::getNameWithPrefix(MangledNameStream, Name, *TM->getDataLayout());<br>
     }<br>
     return MangledName;<br>
   }<br>
@@ -145,7 +144,6 @@ private:<br>
   static TransformFtor createDebugDumper();<br>
<br>
   std::unique_ptr<TargetMachine> TM;<br>
-  Mangler Mang;<br>
   SectionMemoryManager CCMgrMemMgr;<br>
<br>
   ObjLayerT ObjectLayer;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>