<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="mailto: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="mailto:llvm-commits@lists.llvm.org">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 class="gmail_signature" 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="mailto: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 src="https://lh3.googleusercontent.com/jArLagMFiBykGEq2mtMjIS9RO3ydtGbI1KRMmdY7daBuMP4HQbM7p92vdv8yolHBV9sE4YXu7ORFjsy6mcF6LGJOjQhqkd4PrG43u1U2toF3BQIitx8YMjbU9hqX9u3U8MU=s1600" 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>