No, with the msan bot clean I have no idea what the problem might be.<div><br></div><div>What is the difference?<br><br>On Thursday, 7 July 2016, Martin Böhme <<a href="mailto:mboehme@google.com">mboehme@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">It looks as if this creates a difference between stage 2 and 3 of a clang bootstrap for us. Do you have any idea why that might be the case?</div><div class="gmail_extra"><br><div class="gmail_quote">On 30 June 2016 at 20:25, Rafael Espindola via llvm-commits <span dir="ltr"><<a href="javascript:_e(%7B%7D,'cvml','llvm-commits@lists.llvm.org');" target="_blank">llvm-commits@lists.llvm.org</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: Thu Jun 30 13:25:11 2016<br>
New Revision: 274258<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=274258&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=274258&view=rev</a><br>
Log:<br>
Delete MCCodeGenInfo.<br>
<br>
MC doesn't really care about CodeGen stuff, so this was just<br>
complicating target initialization.<br>
<br>
Removed:<br>
    llvm/trunk/include/llvm/MC/MCCodeGenInfo.h<br>
    llvm/trunk/lib/MC/MCCodeGenInfo.cpp<br>
Modified:<br>
    llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h<br>
    llvm/trunk/include/llvm/Support/TargetRegistry.h<br>
    llvm/trunk/include/llvm/Target/TargetMachine.h<br>
    llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp<br>
    llvm/trunk/lib/MC/CMakeLists.txt<br>
    llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/TargetMachine.cpp<br>
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp<br>
    llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h (original)<br>
+++ llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h Thu Jun 30 13:25:11 2016<br>
@@ -22,7 +22,6 @@<br>
 #include "llvm/IR/Module.h"<br>
 #include "llvm/IR/ValueHandle.h"<br>
 #include "llvm/IR/ValueMap.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/Object/Binary.h"<br>
 #include "llvm/Support/ErrorHandling.h"<br>
 #include "llvm/Support/Mutex.h"<br>
<br>
Removed: llvm/trunk/include/llvm/MC/MCCodeGenInfo.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCCodeGenInfo.h?rev=274257&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCCodeGenInfo.h?rev=274257&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/MC/MCCodeGenInfo.h (original)<br>
+++ llvm/trunk/include/llvm/MC/MCCodeGenInfo.h (removed)<br>
@@ -1,50 +0,0 @@<br>
-//===-- llvm/MC/MCCodeGenInfo.h - Target CodeGen Info -----------*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file tracks information about the target which can affect codegen,<br>
-// asm parsing, and asm printing. For example, relocation model.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_MC_MCCODEGENINFO_H<br>
-#define LLVM_MC_MCCODEGENINFO_H<br>
-<br>
-#include "llvm/Support/CodeGen.h"<br>
-<br>
-namespace llvm {<br>
-<br>
-class MCCodeGenInfo {<br>
-  /// Relocation model: static, pic, etc.<br>
-  ///<br>
-  Reloc::Model RelocationModel;<br>
-<br>
-  /// Code model.<br>
-  ///<br>
-  CodeModel::Model CMModel;<br>
-<br>
-  /// Optimization level.<br>
-  ///<br>
-  CodeGenOpt::Level OptLevel;<br>
-<br>
-public:<br>
-  void initMCCodeGenInfo(Reloc::Model RM, CodeModel::Model CM,<br>
-                         CodeGenOpt::Level OL);<br>
-<br>
-  Reloc::Model getRelocationModel() const { return RelocationModel; }<br>
-<br>
-  CodeModel::Model getCodeModel() const { return CMModel; }<br>
-<br>
-  CodeGenOpt::Level getOptLevel() const { return OptLevel; }<br>
-<br>
-  // Allow overriding OptLevel on a per-function basis.<br>
-  void setOptLevel(CodeGenOpt::Level Level) { OptLevel = Level; }<br>
-};<br>
-} // namespace llvm<br>
-<br>
-#endif<br>
<br>
Modified: llvm/trunk/include/llvm/Support/TargetRegistry.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TargetRegistry.h?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TargetRegistry.h?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Support/TargetRegistry.h (original)<br>
+++ llvm/trunk/include/llvm/Support/TargetRegistry.h Thu Jun 30 13:25:11 2016<br>
@@ -34,7 +34,6 @@ class MCAsmBackend;<br>
 class MCAsmInfo;<br>
 class MCAsmParser;<br>
 class MCCodeEmitter;<br>
-class MCCodeGenInfo;<br>
 class MCContext;<br>
 class MCDisassembler;<br>
 class MCInstrAnalysis;<br>
@@ -93,10 +92,9 @@ public:<br>
<br>
   typedef MCAsmInfo *(*MCAsmInfoCtorFnTy)(const MCRegisterInfo &MRI,<br>
                                           const Triple &TT);<br>
-  typedef MCCodeGenInfo *(*MCCodeGenInfoCtorFnTy)(const Triple &TT,<br>
-                                                  Reloc::Model RM,<br>
-                                                  CodeModel::Model CM,<br>
-                                                  CodeGenOpt::Level OL);<br>
+  typedef void (*MCAdjustCodeGenOptsFnTy)(const Triple &TT, Reloc::Model RM,<br>
+                                          CodeModel::Model &CM);<br>
+<br>
   typedef MCInstrInfo *(*MCInstrInfoCtorFnTy)(void);<br>
   typedef MCInstrAnalysis *(*MCInstrAnalysisCtorFnTy)(const MCInstrInfo *Info);<br>
   typedef MCRegisterInfo *(*MCRegInfoCtorFnTy)(const Triple &TT);<br>
@@ -178,9 +176,7 @@ private:<br>
   /// registered.<br>
   MCAsmInfoCtorFnTy MCAsmInfoCtorFn;<br>
<br>
-  /// MCCodeGenInfoCtorFn - Constructor function for this target's<br>
-  /// MCCodeGenInfo, if registered.<br>
-  MCCodeGenInfoCtorFnTy MCCodeGenInfoCtorFn;<br>
+  MCAdjustCodeGenOptsFnTy MCAdjustCodeGenOptsFn;<br>
<br>
   /// MCInstrInfoCtorFn - Constructor function for this target's MCInstrInfo,<br>
   /// if registered.<br>
@@ -301,14 +297,10 @@ public:<br>
     return MCAsmInfoCtorFn(MRI, Triple(TheTriple));<br>
   }<br>
<br>
-  /// createMCCodeGenInfo - Create a MCCodeGenInfo implementation.<br>
-  ///<br>
-  MCCodeGenInfo *createMCCodeGenInfo(StringRef TT, Reloc::Model RM,<br>
-                                     CodeModel::Model CM,<br>
-                                     CodeGenOpt::Level OL) const {<br>
-    if (!MCCodeGenInfoCtorFn)<br>
-      return nullptr;<br>
-    return MCCodeGenInfoCtorFn(Triple(TT), RM, CM, OL);<br>
+  void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                         CodeModel::Model &CM) const {<br>
+    if (MCAdjustCodeGenOptsFn)<br>
+      MCAdjustCodeGenOptsFn(TT, RM, CM);<br>
   }<br>
<br>
   /// createMCInstrInfo - Create a MCInstrInfo implementation.<br>
@@ -646,18 +638,9 @@ struct TargetRegistry {<br>
     T.MCAsmInfoCtorFn = Fn;<br>
   }<br>
<br>
-  /// RegisterMCCodeGenInfo - Register a MCCodeGenInfo implementation for the<br>
-  /// given target.<br>
-  ///<br>
-  /// Clients are responsible for ensuring that registration doesn't occur<br>
-  /// while another thread is attempting to access the registry. Typically<br>
-  /// this is done by initializing all targets at program startup.<br>
-  ///<br>
-  /// @param T - The target being registered.<br>
-  /// @param Fn - A function to construct a MCCodeGenInfo for the target.<br>
-  static void RegisterMCCodeGenInfo(Target &T,<br>
-                                    Target::MCCodeGenInfoCtorFnTy Fn) {<br>
-    T.MCCodeGenInfoCtorFn = Fn;<br>
+  static void registerMCAdjustCodeGenOpts(Target &T,<br>
+                                          Target::MCAdjustCodeGenOptsFnTy Fn) {<br>
+    T.MCAdjustCodeGenOptsFn = Fn;<br>
   }<br>
<br>
   /// RegisterMCInstrInfo - Register a MCInstrInfo implementation for the<br>
@@ -914,39 +897,9 @@ struct RegisterMCAsmInfoFn {<br>
   }<br>
 };<br>
<br>
-/// RegisterMCCodeGenInfo - Helper template for registering a target codegen<br>
-/// info<br>
-/// implementation.  This invokes the static "Create" method on the class<br>
-/// to actually do the construction.  Usage:<br>
-///<br>
-/// extern "C" void LLVMInitializeFooTarget() {<br>
-///   extern Target TheFooTarget;<br>
-///   RegisterMCCodeGenInfo<FooMCCodeGenInfo> X(TheFooTarget);<br>
-/// }<br>
-template <class MCCodeGenInfoImpl> struct RegisterMCCodeGenInfo {<br>
-  RegisterMCCodeGenInfo(Target &T) {<br>
-    TargetRegistry::RegisterMCCodeGenInfo(T, &Allocator);<br>
-  }<br>
-<br>
-private:<br>
-  static MCCodeGenInfo *Allocator(const Triple & /*TT*/, Reloc::Model /*RM*/,<br>
-                                  CodeModel::Model /*CM*/,<br>
-                                  CodeGenOpt::Level /*OL*/) {<br>
-    return new MCCodeGenInfoImpl();<br>
-  }<br>
-};<br>
-<br>
-/// RegisterMCCodeGenInfoFn - Helper template for registering a target codegen<br>
-/// info implementation.  This invokes the specified function to do the<br>
-/// construction.  Usage:<br>
-///<br>
-/// extern "C" void LLVMInitializeFooTarget() {<br>
-///   extern Target TheFooTarget;<br>
-///   RegisterMCCodeGenInfoFn X(TheFooTarget, TheFunction);<br>
-/// }<br>
-struct RegisterMCCodeGenInfoFn {<br>
-  RegisterMCCodeGenInfoFn(Target &T, Target::MCCodeGenInfoCtorFnTy Fn) {<br>
-    TargetRegistry::RegisterMCCodeGenInfo(T, Fn);<br>
+struct RegisterMCAdjustCodeGenOptsFn {<br>
+  RegisterMCAdjustCodeGenOptsFn(Target &T, Target::MCAdjustCodeGenOptsFnTy Fn) {<br>
+    TargetRegistry::registerMCAdjustCodeGenOpts(T, Fn);<br>
   }<br>
 };<br>
<br>
<br>
Modified: llvm/trunk/include/llvm/Target/TargetMachine.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetMachine.h?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetMachine.h?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/Target/TargetMachine.h (original)<br>
+++ llvm/trunk/include/llvm/Target/TargetMachine.h Thu Jun 30 13:25:11 2016<br>
@@ -31,7 +31,6 @@ class Mangler;<br>
 class MachineFunctionInitializer;<br>
 class MachineModuleInfo;<br>
 class MCAsmInfo;<br>
-class MCCodeGenInfo;<br>
 class MCContext;<br>
 class MCInstrInfo;<br>
 class MCRegisterInfo;<br>
@@ -89,9 +88,9 @@ protected: // Can only create subclasses<br>
   std::string TargetCPU;<br>
   std::string TargetFS;<br>
<br>
-  /// Low level target information such as relocation model. Non-const to<br>
-  /// allow resetting optimization level per-function.<br>
-  MCCodeGenInfo *CodeGenInfo;<br>
+  Reloc::Model RM = Reloc::Static;<br>
+  CodeModel::Model CMModel = CodeModel::Default;<br>
+  CodeGenOpt::Level OptLevel = CodeGenOpt::Default;<br>
<br>
   /// Contains target specific asm information.<br>
   const MCAsmInfo *AsmInfo;<br>
@@ -186,7 +185,7 @@ public:<br>
   CodeGenOpt::Level getOptLevel() const;<br>
<br>
   /// \brief Overrides the optimization level.<br>
-  void setOptLevel(CodeGenOpt::Level Level) const;<br>
+  void setOptLevel(CodeGenOpt::Level Level);<br>
<br>
   void setFastISel(bool Enable) { Options.EnableFastISel = Enable; }<br>
   bool getO0WantsFastISel() { return O0WantsFastISel; }<br>
<br>
Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Thu Jun 30 13:25:11 2016<br>
@@ -88,7 +88,10 @@ LLVMTargetMachine::LLVMTargetMachine(con<br>
                                      Reloc::Model RM, CodeModel::Model CM,<br>
                                      CodeGenOpt::Level OL)<br>
     : TargetMachine(T, DataLayoutString, TT, CPU, FS, Options) {<br>
-  CodeGenInfo = T.createMCCodeGenInfo(TT.str(), RM, CM, OL);<br>
+  T.adjustCodeGenOpts(TT, RM, CM);<br>
+  this->RM = RM;<br>
+  this->CMModel = CM;<br>
+  this->OptLevel = OL;<br>
 }<br>
<br>
 TargetIRAnalysis LLVMTargetMachine::getTargetIRAnalysis() {<br>
<br>
Modified: llvm/trunk/lib/MC/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/CMakeLists.txt?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/CMakeLists.txt?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/CMakeLists.txt (original)<br>
+++ llvm/trunk/lib/MC/CMakeLists.txt Thu Jun 30 13:25:11 2016<br>
@@ -9,7 +9,6 @@ add_llvm_library(LLVMMC<br>
   MCAsmStreamer.cpp<br>
   MCAssembler.cpp<br>
   MCCodeEmitter.cpp<br>
-  MCCodeGenInfo.cpp<br>
   MCCodeView.cpp<br>
   MCContext.cpp<br>
   MCDwarf.cpp<br>
<br>
Removed: llvm/trunk/lib/MC/MCCodeGenInfo.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCCodeGenInfo.cpp?rev=274257&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCCodeGenInfo.cpp?rev=274257&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCCodeGenInfo.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCCodeGenInfo.cpp (removed)<br>
@@ -1,23 +0,0 @@<br>
-//===-- MCCodeGenInfo.cpp - Target CodeGen Info -----------------*- C++ -*-===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file tracks information about the target which can affect codegen,<br>
-// asm parsing, and asm printing. For example, relocation model.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
-using namespace llvm;<br>
-<br>
-void MCCodeGenInfo::initMCCodeGenInfo(Reloc::Model RM, CodeModel::Model CM,<br>
-                                      CodeGenOpt::Level OL) {<br>
-  RelocationModel = RM;<br>
-  CMModel = CM;<br>
-  OptLevel = OL;<br>
-}<br>
<br>
Modified: llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
 #include "AArch64ELFStreamer.h"<br>
 #include "AArch64MCAsmInfo.h"<br>
 #include "InstPrinter/AArch64InstPrinter.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
@@ -72,10 +71,8 @@ static MCAsmInfo *createAArch64MCAsmInfo<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createAArch64MCCodeGenInfo(const Triple &TT,<br>
-                                                 Reloc::Model RM,<br>
-                                                 CodeModel::Model CM,<br>
-                                                 CodeGenOpt::Level OL) {<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   assert((TT.isOSBinFormatELF() || TT.isOSBinFormatMachO()) &&<br>
          "Only expect Darwin and ELF targets");<br>
<br>
@@ -89,10 +86,6 @@ static MCCodeGenInfo *createAArch64MCCod<br>
   else if (CM != CodeModel::Small && CM != CodeModel::Large)<br>
     report_fatal_error(<br>
         "Only small and large code models are allowed on AArch64");<br>
-<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 static MCInstPrinter *createAArch64MCInstPrinter(const Triple &T,<br>
@@ -131,7 +124,7 @@ extern "C" void LLVMInitializeAArch64Tar<br>
     RegisterMCAsmInfoFn X(*T, createAArch64MCAsmInfo);<br>
<br>
     // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createAArch64MCCodeGenInfo);<br>
+    TargetRegistry::registerMCAdjustCodeGenOpts(*T, adjustCodeGenOpts);<br>
<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createAArch64MCInstrInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -18,7 +18,6 @@<br>
 #include "AMDGPUTargetStreamer.h"<br>
 #include "InstPrinter/AMDGPUInstPrinter.h"<br>
 #include "SIDefines.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCContext.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
@@ -56,15 +55,6 @@ createAMDGPUMCSubtargetInfo(const Triple<br>
   return createAMDGPUMCSubtargetInfoImpl(TT, CPU, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createAMDGPUMCCodeGenInfo(const Triple &TT,<br>
-                                                Reloc::Model RM,<br>
-                                                CodeModel::Model CM,<br>
-                                                CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCInstPrinter *createAMDGPUMCInstPrinter(const Triple &T,<br>
                                                 unsigned SyntaxVariant,<br>
                                                 const MCAsmInfo &MAI,<br>
@@ -99,7 +89,6 @@ extern "C" void LLVMInitializeAMDGPUTarg<br>
   for (Target *T : {&TheAMDGPUTarget, &TheGCNTarget}) {<br>
     RegisterMCAsmInfo<AMDGPUMCAsmInfo> X(*T);<br>
<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createAMDGPUMCCodeGenInfo);<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createAMDGPUMCInstrInfo);<br>
     TargetRegistry::RegisterMCRegInfo(*T, createAMDGPUMCRegisterInfo);<br>
     TargetRegistry::RegisterMCSubtargetInfo(*T, createAMDGPUMCSubtargetInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -16,7 +16,6 @@<br>
 #include "ARMMCTargetDesc.h"<br>
 #include "InstPrinter/ARMInstPrinter.h"<br>
 #include "llvm/ADT/Triple.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCELFStreamer.h"<br>
 #include "llvm/MC/MCInstrAnalysis.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
@@ -201,14 +200,6 @@ static MCAsmInfo *createARMMCAsmInfo(con<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createARMMCCodeGenInfo(const Triple &TT, Reloc::Model RM,<br>
-                                             CodeModel::Model CM,<br>
-                                             CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,<br>
                                      MCAsmBackend &MAB, raw_pwrite_stream &OS,<br>
                                      MCCodeEmitter *Emitter, bool RelaxAll) {<br>
@@ -287,9 +278,6 @@ extern "C" void LLVMInitializeARMTargetM<br>
     // Register the MC asm info.<br>
     RegisterMCAsmInfoFn X(*T, createARMMCAsmInfo);<br>
<br>
-    // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createARMMCCodeGenInfo);<br>
-<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createARMMCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
 #include "BPFMCTargetDesc.h"<br>
 #include "BPFMCAsmInfo.h"<br>
 #include "InstPrinter/BPFInstPrinter.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
@@ -51,14 +50,6 @@ static MCSubtargetInfo *createBPFMCSubta<br>
   return createBPFMCSubtargetInfoImpl(TT, CPU, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createBPFMCCodeGenInfo(const Triple &TT, Reloc::Model RM,<br>
-                                             CodeModel::Model CM,<br>
-                                             CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCStreamer *createBPFMCStreamer(const Triple &T,<br>
                                        MCContext &Ctx, MCAsmBackend &MAB,<br>
                                        raw_pwrite_stream &OS, MCCodeEmitter *Emitter,<br>
@@ -81,9 +72,6 @@ extern "C" void LLVMInitializeBPFTargetM<br>
     // Register the MC asm info.<br>
     RegisterMCAsmInfo<BPFMCAsmInfo> X(*T);<br>
<br>
-    // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createBPFMCCodeGenInfo);<br>
-<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createBPFMCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -16,7 +16,6 @@<br>
 #include "HexagonMCAsmInfo.h"<br>
 #include "HexagonMCELFStreamer.h"<br>
 #include "MCTargetDesc/HexagonInstPrinter.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCContext.h"<br>
 #include "llvm/MC/MCELFStreamer.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
@@ -199,15 +198,6 @@ static MCAsmInfo *createHexagonMCAsmInfo<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createHexagonMCCodeGenInfo(const Triple &TT,<br>
-                                                 Reloc::Model RM,<br>
-                                                 CodeModel::Model CM,<br>
-                                                 CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCInstPrinter *createHexagonMCInstPrinter(const Triple &T,<br>
                                                  unsigned SyntaxVariant,<br>
                                                  const MCAsmInfo &MAI,<br>
@@ -242,10 +232,6 @@ extern "C" void LLVMInitializeHexagonTar<br>
   // Register the MC asm info.<br>
   RegisterMCAsmInfoFn X(TheHexagonTarget, createHexagonMCAsmInfo);<br>
<br>
-  // Register the MC codegen info.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheHexagonTarget,<br>
-                                        createHexagonMCCodeGenInfo);<br>
-<br>
   // Register the MC instruction info.<br>
   TargetRegistry::RegisterMCInstrInfo(TheHexagonTarget,<br>
                                       createHexagonMCInstrInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
<br>
 #include "InstPrinter/LanaiInstPrinter.h"<br>
 #include "LanaiMCAsmInfo.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrAnalysis.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
@@ -55,15 +54,6 @@ createLanaiMCSubtargetInfo(const Triple<br>
   return createLanaiMCSubtargetInfoImpl(TT, CPUName, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createLanaiMCCodeGenInfo(const Triple &TT,<br>
-                                               Reloc::Model RM,<br>
-                                               CodeModel::Model CM,<br>
-                                               CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context,<br>
                                     MCAsmBackend &MAB, raw_pwrite_stream &OS,<br>
                                     MCCodeEmitter *Emitter, bool RelaxAll) {<br>
@@ -125,10 +115,6 @@ extern "C" void LLVMInitializeLanaiTarge<br>
   // Register the MC asm info.<br>
   RegisterMCAsmInfo<LanaiMCAsmInfo> X(TheLanaiTarget);<br>
<br>
-  // Register the MC codegen info.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheLanaiTarget,<br>
-                                        createLanaiMCCodeGenInfo);<br>
-<br>
   // Register the MC instruction info.<br>
   TargetRegistry::RegisterMCInstrInfo(TheLanaiTarget, createLanaiMCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -14,7 +14,6 @@<br>
 #include "MSP430MCTargetDesc.h"<br>
 #include "InstPrinter/MSP430InstPrinter.h"<br>
 #include "MSP430MCAsmInfo.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
@@ -48,15 +47,6 @@ createMSP430MCSubtargetInfo(const Triple<br>
   return createMSP430MCSubtargetInfoImpl(TT, CPU, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createMSP430MCCodeGenInfo(const Triple &TT,<br>
-                                                Reloc::Model RM,<br>
-                                                CodeModel::Model CM,<br>
-                                                CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCInstPrinter *createMSP430MCInstPrinter(const Triple &T,<br>
                                                 unsigned SyntaxVariant,<br>
                                                 const MCAsmInfo &MAI,<br>
@@ -71,10 +61,6 @@ extern "C" void LLVMInitializeMSP430Targ<br>
   // Register the MC asm info.<br>
   RegisterMCAsmInfo<MSP430MCAsmInfo> X(TheMSP430Target);<br>
<br>
-  // Register the MC codegen info.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheMSP430Target,<br>
-                                        createMSP430MCCodeGenInfo);<br>
-<br>
   // Register the MC instruction info.<br>
   TargetRegistry::RegisterMCInstrInfo(TheMSP430Target, createMSP430MCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -18,7 +18,6 @@<br>
 #include "MipsMCNaCl.h"<br>
 #include "MipsTargetStreamer.h"<br>
 #include "llvm/ADT/Triple.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCELFStreamer.h"<br>
 #include "llvm/MC/MCInstrAnalysis.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
@@ -82,14 +81,6 @@ static MCAsmInfo *createMipsMCAsmInfo(co<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createMipsMCCodeGenInfo(const Triple &TT, Reloc::Model RM,<br>
-                                              CodeModel::Model CM,<br>
-                                              CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCInstPrinter *createMipsMCInstPrinter(const Triple &T,<br>
                                               unsigned SyntaxVariant,<br>
                                               const MCAsmInfo &MAI,<br>
@@ -163,9 +154,6 @@ extern "C" void LLVMInitializeMipsTarget<br>
     // Register the MC asm info.<br>
     RegisterMCAsmInfoFn X(*T, createMipsMCAsmInfo);<br>
<br>
-    // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createMipsMCCodeGenInfo);<br>
-<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createMipsMCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -14,7 +14,6 @@<br>
 #include "NVPTXMCTargetDesc.h"<br>
 #include "InstPrinter/NVPTXInstPrinter.h"<br>
 #include "NVPTXMCAsmInfo.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
@@ -49,16 +48,6 @@ createNVPTXMCSubtargetInfo(const Triple<br>
   return createNVPTXMCSubtargetInfoImpl(TT, CPU, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createNVPTXMCCodeGenInfo(const Triple &TT,<br>
-                                               Reloc::Model RM,<br>
-                                               CodeModel::Model CM,<br>
-                                               CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
-}<br>
-<br>
 static MCInstPrinter *createNVPTXMCInstPrinter(const Triple &T,<br>
                                                unsigned SyntaxVariant,<br>
                                                const MCAsmInfo &MAI,<br>
@@ -75,9 +64,6 @@ extern "C" void LLVMInitializeNVPTXTarge<br>
     // Register the MC asm info.<br>
     RegisterMCAsmInfo<NVPTXMCAsmInfo> X(*T);<br>
<br>
-    // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createNVPTXMCCodeGenInfo);<br>
-<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createNVPTXMCInstrInfo);<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
 #include "InstPrinter/PPCInstPrinter.h"<br>
 #include "PPCMCAsmInfo.h"<br>
 #include "PPCTargetStreamer.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCContext.h"<br>
 #include "llvm/MC/MCELFStreamer.h"<br>
 #include "llvm/MC/MCExpr.h"<br>
@@ -87,18 +86,13 @@ static MCAsmInfo *createPPCMCAsmInfo(con<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createPPCMCCodeGenInfo(const Triple &TT, Reloc::Model RM,<br>
-                                             CodeModel::Model CM,<br>
-                                             CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   if (CM == CodeModel::Default) {<br>
     if (!TT.isOSDarwin() &&<br>
         (TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le))<br>
       CM = CodeModel::Medium;<br>
   }<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 namespace {<br>
@@ -239,7 +233,7 @@ extern "C" void LLVMInitializePowerPCTar<br>
     RegisterMCAsmInfoFn C(*T, createPPCMCAsmInfo);<br>
<br>
     // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createPPCMCCodeGenInfo);<br>
+    TargetRegistry::registerMCAdjustCodeGenOpts(*T, adjustCodeGenOpts);<br>
<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createPPCMCInstrInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
 #include "InstPrinter/SparcInstPrinter.h"<br>
 #include "SparcMCAsmInfo.h"<br>
 #include "SparcTargetStreamer.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
@@ -81,12 +80,8 @@ createSparcMCSubtargetInfo(const Triple<br>
 //<br>
 // All code models require that the text segment is smaller than 2GB.<br>
<br>
-static MCCodeGenInfo *createSparcMCCodeGenInfo(const Triple &TT,<br>
-                                               Reloc::Model RM,<br>
-                                               CodeModel::Model CM,<br>
-                                               CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   // The default 32-bit code model is abs32/pic32 and the default 32-bit<br>
   // code model for JIT is abs32.<br>
   switch (CM) {<br>
@@ -94,17 +89,10 @@ static MCCodeGenInfo *createSparcMCCodeG<br>
   case CodeModel::Default:<br>
   case CodeModel::JITDefault: CM = CodeModel::Small; break;<br>
   }<br>
-<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
-static MCCodeGenInfo *createSparcV9MCCodeGenInfo(const Triple &TT,<br>
-                                                 Reloc::Model RM,<br>
-                                                 CodeModel::Model CM,<br>
-                                                 CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-<br>
+static void adjustCodeGenOptsV9(const Triple &TT, Reloc::Model RM,<br>
+                                CodeModel::Model &CM) {<br>
   // The default 64-bit code model is abs44/pic32 and the default 64-bit<br>
   // code model for JIT is abs64.<br>
   switch (CM) {<br>
@@ -116,9 +104,6 @@ static MCCodeGenInfo *createSparcV9MCCod<br>
     CM = CodeModel::Large;<br>
     break;<br>
   }<br>
-<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 static MCTargetStreamer *<br>
@@ -175,10 +160,10 @@ extern "C" void LLVMInitializeSparcTarge<br>
   }<br>
<br>
   // Register the MC codegen info.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheSparcTarget,<br>
-                                        createSparcMCCodeGenInfo);<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheSparcV9Target,<br>
-                                        createSparcV9MCCodeGenInfo);<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheSparcelTarget,<br>
-                                        createSparcMCCodeGenInfo);<br>
+  TargetRegistry::registerMCAdjustCodeGenOpts(TheSparcTarget,<br>
+                                              adjustCodeGenOpts);<br>
+  TargetRegistry::registerMCAdjustCodeGenOpts(TheSparcV9Target,<br>
+                                              adjustCodeGenOptsV9);<br>
+  TargetRegistry::registerMCAdjustCodeGenOpts(TheSparcelTarget,<br>
+                                              adjustCodeGenOpts);<br>
 }<br>
<br>
Modified: llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -10,7 +10,6 @@<br>
 #include "SystemZMCTargetDesc.h"<br>
 #include "InstPrinter/SystemZInstPrinter.h"<br>
 #include "SystemZMCAsmInfo.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCStreamer.h"<br>
@@ -159,11 +158,8 @@ createSystemZMCSubtargetInfo(const Tripl<br>
   return createSystemZMCSubtargetInfoImpl(TT, CPU, FS);<br>
 }<br>
<br>
-static MCCodeGenInfo *createSystemZMCCodeGenInfo(const Triple &TT,<br>
-                                                 Reloc::Model RM,<br>
-                                                 CodeModel::Model CM,<br>
-                                                 CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   // For SystemZ we define the models as follows:<br>
   //<br>
   // Small:  BRASL can call any function and will use a stub if necessary.<br>
@@ -197,8 +193,6 @@ static MCCodeGenInfo *createSystemZMCCod<br>
     CM = CodeModel::Small;<br>
   else if (CM == CodeModel::JITDefault)<br>
     CM = RM == Reloc::PIC_ ? CodeModel::Small : CodeModel::Medium;<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 static MCInstPrinter *createSystemZMCInstPrinter(const Triple &T,<br>
@@ -214,9 +208,9 @@ extern "C" void LLVMInitializeSystemZTar<br>
   TargetRegistry::RegisterMCAsmInfo(TheSystemZTarget,<br>
                                     createSystemZMCAsmInfo);<br>
<br>
-  // Register the MCCodeGenInfo.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheSystemZTarget,<br>
-                                        createSystemZMCCodeGenInfo);<br>
+  // Register the adjustCodeGenOpts.<br>
+  TargetRegistry::registerMCAdjustCodeGenOpts(TheSystemZTarget,<br>
+                                              adjustCodeGenOpts);<br>
<br>
   // Register the MCCodeEmitter.<br>
   TargetRegistry::RegisterMCCodeEmitter(TheSystemZTarget,<br>
<br>
Modified: llvm/trunk/lib/Target/TargetMachine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetMachine.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetMachine.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/TargetMachine.cpp (original)<br>
+++ llvm/trunk/lib/Target/TargetMachine.cpp Thu Jun 30 13:25:11 2016<br>
@@ -21,7 +21,6 @@<br>
 #include "llvm/IR/LegacyPassManager.h"<br>
 #include "llvm/IR/Mangler.h"<br>
 #include "llvm/MC/MCAsmInfo.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCContext.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCSectionMachO.h"<br>
@@ -40,12 +39,10 @@ TargetMachine::TargetMachine(const Targe<br>
                              const Triple &TT, StringRef CPU, StringRef FS,<br>
                              const TargetOptions &Options)<br>
     : TheTarget(T), DL(DataLayoutString), TargetTriple(TT), TargetCPU(CPU),<br>
-      TargetFS(FS), CodeGenInfo(nullptr), AsmInfo(nullptr), MRI(nullptr),<br>
-      MII(nullptr), STI(nullptr), RequireStructuredCFG(false),<br>
-      Options(Options) {}<br>
+      TargetFS(FS), AsmInfo(nullptr), MRI(nullptr), MII(nullptr), STI(nullptr),<br>
+      RequireStructuredCFG(false), Options(Options) {}<br>
<br>
 TargetMachine::~TargetMachine() {<br>
-  delete CodeGenInfo;<br>
   delete AsmInfo;<br>
   delete MRI;<br>
   delete MII;<br>
@@ -77,19 +74,11 @@ void TargetMachine::resetTargetOptions(c<br>
<br>
 /// Returns the code generation relocation model. The choices are static, PIC,<br>
 /// and dynamic-no-pic.<br>
-Reloc::Model TargetMachine::getRelocationModel() const {<br>
-  if (!CodeGenInfo)<br>
-    return Reloc::Static; // FIXME<br>
-  return CodeGenInfo->getRelocationModel();<br>
-}<br>
+Reloc::Model TargetMachine::getRelocationModel() const { return RM; }<br>
<br>
 /// Returns the code model. The choices are small, kernel, medium, large, and<br>
 /// target default.<br>
-CodeModel::Model TargetMachine::getCodeModel() const {<br>
-  if (!CodeGenInfo)<br>
-    return CodeModel::Default;<br>
-  return CodeGenInfo->getCodeModel();<br>
-}<br>
+CodeModel::Model TargetMachine::getCodeModel() const { return CMModel; }<br>
<br>
 /// Get the IR-specified TLS model for Var.<br>
 static TLSModel::Model getSelectedTLSModel(const GlobalValue *GV) {<br>
@@ -182,16 +171,9 @@ TLSModel::Model TargetMachine::getTLSMod<br>
 }<br>
<br>
 /// Returns the optimization level: None, Less, Default, or Aggressive.<br>
-CodeGenOpt::Level TargetMachine::getOptLevel() const {<br>
-  if (!CodeGenInfo)<br>
-    return CodeGenOpt::Default;<br>
-  return CodeGenInfo->getOptLevel();<br>
-}<br>
+CodeGenOpt::Level TargetMachine::getOptLevel() const { return OptLevel; }<br>
<br>
-void TargetMachine::setOptLevel(CodeGenOpt::Level Level) const {<br>
-  if (CodeGenInfo)<br>
-    CodeGenInfo->setOptLevel(Level);<br>
-}<br>
+void TargetMachine::setOptLevel(CodeGenOpt::Level Level) { OptLevel = Level; }<br>
<br>
 TargetIRAnalysis TargetMachine::getTargetIRAnalysis() {<br>
   return TargetIRAnalysis([this](const Function &F) {<br>
<br>
Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -16,7 +16,6 @@<br>
 #include "InstPrinter/WebAssemblyInstPrinter.h"<br>
 #include "WebAssemblyMCAsmInfo.h"<br>
 #include "WebAssemblyTargetStreamer.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
@@ -40,18 +39,13 @@ static MCAsmInfo *createMCAsmInfo(const<br>
   return new WebAssemblyMCAsmInfo(TT);<br>
 }<br>
<br>
-static MCCodeGenInfo *createMCCodeGenInfo(const Triple & /*TT*/,<br>
-                                          Reloc::Model /*RM*/,<br>
-                                          CodeModel::Model CM,<br>
-                                          CodeGenOpt::Level OL) {<br>
+static void adjustCodeGenOpts(const Triple & /*TT*/, Reloc::Model /*RM*/,<br>
+                              CodeModel::Model &CM) {<br>
   CodeModel::Model M = (CM == CodeModel::Default || CM == CodeModel::JITDefault)<br>
                            ? CodeModel::Large<br>
                            : CM;<br>
   if (M != CodeModel::Large)<br>
     report_fatal_error("Non-large code models are not supported yet");<br>
-  MCCodeGenInfo *CGI = new MCCodeGenInfo();<br>
-  CGI->initMCCodeGenInfo(Reloc::PIC_, CM, OL);<br>
-  return CGI;<br>
 }<br>
<br>
 static MCInstrInfo *createMCInstrInfo() {<br>
@@ -114,7 +108,7 @@ extern "C" void LLVMInitializeWebAssembl<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createMCInstrInfo);<br>
<br>
     // Register the MC codegen info.<br>
-    TargetRegistry::RegisterMCCodeGenInfo(*T, createMCCodeGenInfo);<br>
+    TargetRegistry::registerMCAdjustCodeGenOpts(*T, adjustCodeGenOpts);<br>
<br>
     // Register the MC register info.<br>
     TargetRegistry::RegisterMCRegInfo(*T, createMCRegisterInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -16,7 +16,6 @@<br>
 #include "InstPrinter/X86IntelInstPrinter.h"<br>
 #include "X86MCAsmInfo.h"<br>
 #include "llvm/ADT/Triple.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrAnalysis.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
@@ -199,11 +198,8 @@ static MCAsmInfo *createX86MCAsmInfo(con<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createX86MCCodeGenInfo(const Triple &TT, Reloc::Model RM,<br>
-                                             CodeModel::Model CM,<br>
-                                             CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
-<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   bool is64Bit = TT.getArch() == Triple::x86_64;<br>
<br>
   // For static codegen, if we're not already set, use Small codegen.<br>
@@ -212,9 +208,6 @@ static MCCodeGenInfo *createX86MCCodeGen<br>
   else if (CM == CodeModel::JITDefault)<br>
     // 64-bit JIT places everything in the same buffer except external funcs.<br>
     CM = is64Bit ? CodeModel::Large : CodeModel::Small;<br>
-<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 static MCInstPrinter *createX86MCInstPrinter(const Triple &T,<br>
@@ -246,7 +239,7 @@ extern "C" void LLVMInitializeX86TargetM<br>
     RegisterMCAsmInfoFn X(*T, createX86MCAsmInfo);<br>
<br>
     // Register the MC codegen info.<br>
-    RegisterMCCodeGenInfoFn Y(*T, createX86MCCodeGenInfo);<br>
+    RegisterMCAdjustCodeGenOptsFn Y(*T, adjustCodeGenOpts);<br>
<br>
     // Register the MC instruction info.<br>
     TargetRegistry::RegisterMCInstrInfo(*T, createX86MCInstrInfo);<br>
<br>
Modified: llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp?rev=274258&r1=274257&r2=274258&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp (original)<br>
+++ llvm/trunk/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp Thu Jun 30 13:25:11 2016<br>
@@ -15,7 +15,6 @@<br>
 #include "InstPrinter/XCoreInstPrinter.h"<br>
 #include "XCoreMCAsmInfo.h"<br>
 #include "XCoreTargetStreamer.h"<br>
-#include "llvm/MC/MCCodeGenInfo.h"<br>
 #include "llvm/MC/MCInstrInfo.h"<br>
 #include "llvm/MC/MCRegisterInfo.h"<br>
 #include "llvm/MC/MCSubtargetInfo.h"<br>
@@ -62,19 +61,13 @@ static MCAsmInfo *createXCoreMCAsmInfo(c<br>
   return MAI;<br>
 }<br>
<br>
-static MCCodeGenInfo *createXCoreMCCodeGenInfo(const Triple &TT,<br>
-                                               Reloc::Model RM,<br>
-                                               CodeModel::Model CM,<br>
-                                               CodeGenOpt::Level OL) {<br>
-  MCCodeGenInfo *X = new MCCodeGenInfo();<br>
+static void adjustCodeGenOpts(const Triple &TT, Reloc::Model RM,<br>
+                              CodeModel::Model &CM) {<br>
   if (CM == CodeModel::Default) {<br>
     CM = CodeModel::Small;<br>
   }<br>
   if (CM != CodeModel::Small && CM != CodeModel::Large)<br>
     report_fatal_error("Target only supports CodeModel Small or Large");<br>
-<br>
-  X->initMCCodeGenInfo(RM, CM, OL);<br>
-  return X;<br>
 }<br>
<br>
 static MCInstPrinter *createXCoreMCInstPrinter(const Triple &T,<br>
@@ -134,8 +127,8 @@ extern "C" void LLVMInitializeXCoreTarge<br>
   RegisterMCAsmInfoFn X(TheXCoreTarget, createXCoreMCAsmInfo);<br>
<br>
   // Register the MC codegen info.<br>
-  TargetRegistry::RegisterMCCodeGenInfo(TheXCoreTarget,<br>
-                                        createXCoreMCCodeGenInfo);<br>
+  TargetRegistry::registerMCAdjustCodeGenOpts(TheXCoreTarget,<br>
+                                              adjustCodeGenOpts);<br>
<br>
   // Register the MC instruction info.<br>
   TargetRegistry::RegisterMCInstrInfo(TheXCoreTarget, createXCoreMCInstrInfo);<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="javascript:_e(%7B%7D,'cvml','llvm-commits@lists.llvm.org');" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:16px;font-family:Arial;color:rgb(0,0,0);font-weight:700;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Martin Böhme</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333333333333px;font-family:Arial;color:rgb(102,102,102);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Software Engineer</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:13.3333333333333px;font-family:Arial;color:rgb(102,102,102);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><a href="javascript:_e(%7B%7D,'cvml','mboehme@google.com');" target="_blank">mboehme@google.com</a></span><span style="font-size:13.3333333333333px;font-family:Arial;color:rgb(102,102,102);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><br></span><span style="font-size:13.3333333333333px;font-family:Arial;color:rgb(102,102,102);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">+49 176 64059273</span></p><span style="font-size:13.3333333333333px;font-family:Arial;color:rgb(102,102,102);vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><img width="100px;" height="58px;" style="border:none"></span></span><br><div><div style="font-size:13px"><span style="font-family:Arial,Verdana,sans-serif"><font color="#666666">Google Germany GmbH</font></span></div><div><div style="font-size:13px;font-family:Arial,Verdana,sans-serif"><font color="#666666">Maria-Goeppert-Str. 3</font></div><div style="font-size:13px;font-family:Arial,Verdana,sans-serif"><font color="#666666">23562 Lübeck<br></font></div><div style="font-size:13px;font-family:Arial,Verdana,sans-serif"><font color="#666666"><br></font></div><div style="font-family:Arial,Verdana,sans-serif"><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Registergericht und -nummer: Hamburg, HRB 86891</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Sitz der Gesellschaft: Hamburg</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Diese E-Mail ist vertraulich. Wenn Sie nicht der richtige Adressat sind, leiten Sie diese bitte nicht weiter, informieren Sie den Absender und löschen Sie die E-Mail und alle Anhänge. Vielen Dank.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.6666666666667px;font-family:Arial;color:rgb(183,183,183);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">This e-mail is confidential. If you are not the right addressee please do not forward it, please inform the sender, and please erase this e-mail including any attachments. Thanks.</span></p></span></div></div></div></div></div></div></div></div></div>
</div>
</blockquote></div>