diff options
Diffstat (limited to 'llvm/lib/Target/Mips')
-rw-r--r-- | llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp | 14 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp | 17 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsAsmPrinter.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp | 31 |
7 files changed, 56 insertions, 38 deletions
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 890dc2d6cba..34250885508 100644 --- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -6469,10 +6469,10 @@ bool MipsAsmParser::parseInternalDirectiveReallowModule() { } extern "C" void LLVMInitializeMipsAsmParser() { - RegisterMCAsmParser<MipsAsmParser> X(TheMipsTarget); - RegisterMCAsmParser<MipsAsmParser> Y(TheMipselTarget); - RegisterMCAsmParser<MipsAsmParser> A(TheMips64Target); - RegisterMCAsmParser<MipsAsmParser> B(TheMips64elTarget); + RegisterMCAsmParser<MipsAsmParser> X(getTheMipsTarget()); + RegisterMCAsmParser<MipsAsmParser> Y(getTheMipselTarget()); + RegisterMCAsmParser<MipsAsmParser> A(getTheMips64Target()); + RegisterMCAsmParser<MipsAsmParser> B(getTheMips64elTarget()); } #define GET_REGISTER_MATCHER diff --git a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp index 74a8f4f2152..b992988aefd 100644 --- a/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp +++ b/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp @@ -519,8 +519,10 @@ static DecodeStatus DecodeMovePRegPair(MCInst &Inst, unsigned Insn, const void *Decoder); namespace llvm { -extern Target TheMipselTarget, TheMipsTarget, TheMips64Target, - TheMips64elTarget; +Target &getTheMipselTarget(); +Target &getTheMipsTarget(); +Target &getTheMips64Target(); +Target &getTheMips64elTarget(); } static MCDisassembler *createMipsDisassembler( @@ -539,13 +541,13 @@ static MCDisassembler *createMipselDisassembler( extern "C" void LLVMInitializeMipsDisassembler() { // Register the disassembler. - TargetRegistry::RegisterMCDisassembler(TheMipsTarget, + TargetRegistry::RegisterMCDisassembler(getTheMipsTarget(), createMipsDisassembler); - TargetRegistry::RegisterMCDisassembler(TheMipselTarget, + TargetRegistry::RegisterMCDisassembler(getTheMipselTarget(), createMipselDisassembler); - TargetRegistry::RegisterMCDisassembler(TheMips64Target, + TargetRegistry::RegisterMCDisassembler(getTheMips64Target(), createMipsDisassembler); - TargetRegistry::RegisterMCDisassembler(TheMips64elTarget, + TargetRegistry::RegisterMCDisassembler(getTheMips64elTarget(), createMipselDisassembler); } diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp index a0557395097..56fe1857211 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp @@ -149,8 +149,8 @@ static MCInstrAnalysis *createMipsMCInstrAnalysis(const MCInstrInfo *Info) { } extern "C" void LLVMInitializeMipsTargetMC() { - for (Target *T : {&TheMipsTarget, &TheMipselTarget, &TheMips64Target, - &TheMips64elTarget}) { + for (Target *T : {&getTheMipsTarget(), &getTheMipselTarget(), + &getTheMips64Target(), &getTheMips64elTarget()}) { // Register the MC asm info. RegisterMCAsmInfoFn X(*T, createMipsMCAsmInfo); @@ -183,20 +183,19 @@ extern "C" void LLVMInitializeMipsTargetMC() { } // Register the MC Code Emitter - for (Target *T : {&TheMipsTarget, &TheMips64Target}) + for (Target *T : {&getTheMipsTarget(), &getTheMips64Target()}) TargetRegistry::RegisterMCCodeEmitter(*T, createMipsMCCodeEmitterEB); - for (Target *T : {&TheMipselTarget, &TheMips64elTarget}) + for (Target *T : {&getTheMipselTarget(), &getTheMips64elTarget()}) TargetRegistry::RegisterMCCodeEmitter(*T, createMipsMCCodeEmitterEL); // Register the asm backend. - TargetRegistry::RegisterMCAsmBackend(TheMipsTarget, + TargetRegistry::RegisterMCAsmBackend(getTheMipsTarget(), createMipsAsmBackendEB32); - TargetRegistry::RegisterMCAsmBackend(TheMipselTarget, + TargetRegistry::RegisterMCAsmBackend(getTheMipselTarget(), createMipsAsmBackendEL32); - TargetRegistry::RegisterMCAsmBackend(TheMips64Target, + TargetRegistry::RegisterMCAsmBackend(getTheMips64Target(), createMipsAsmBackendEB64); - TargetRegistry::RegisterMCAsmBackend(TheMips64elTarget, + TargetRegistry::RegisterMCAsmBackend(getTheMips64elTarget(), createMipsAsmBackendEL64); - } diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h index 0458c644a17..b28681f42eb 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h @@ -31,10 +31,10 @@ class Triple; class raw_ostream; class raw_pwrite_stream; -extern Target TheMipsTarget; -extern Target TheMipselTarget; -extern Target TheMips64Target; -extern Target TheMips64elTarget; +Target &getTheMipsTarget(); +Target &getTheMipselTarget(); +Target &getTheMips64Target(); +Target &getTheMips64elTarget(); MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII, const MCRegisterInfo &MRI, diff --git a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp index 8dab262ac25..b30fc4a0119 100644 --- a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp +++ b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp @@ -1066,8 +1066,8 @@ bool MipsAsmPrinter::isLongBranchPseudo(int Opcode) const { // Force static initialization. extern "C" void LLVMInitializeMipsAsmPrinter() { - RegisterAsmPrinter<MipsAsmPrinter> X(TheMipsTarget); - RegisterAsmPrinter<MipsAsmPrinter> Y(TheMipselTarget); - RegisterAsmPrinter<MipsAsmPrinter> A(TheMips64Target); - RegisterAsmPrinter<MipsAsmPrinter> B(TheMips64elTarget); + RegisterAsmPrinter<MipsAsmPrinter> X(getTheMipsTarget()); + RegisterAsmPrinter<MipsAsmPrinter> Y(getTheMipselTarget()); + RegisterAsmPrinter<MipsAsmPrinter> A(getTheMips64Target()); + RegisterAsmPrinter<MipsAsmPrinter> B(getTheMips64elTarget()); } diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index 80641ed9bd3..594bcec6eea 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -39,10 +39,10 @@ using namespace llvm; extern "C" void LLVMInitializeMipsTarget() { // Register the target. - RegisterTargetMachine<MipsebTargetMachine> X(TheMipsTarget); - RegisterTargetMachine<MipselTargetMachine> Y(TheMipselTarget); - RegisterTargetMachine<MipsebTargetMachine> A(TheMips64Target); - RegisterTargetMachine<MipselTargetMachine> B(TheMips64elTarget); + RegisterTargetMachine<MipsebTargetMachine> X(getTheMipsTarget()); + RegisterTargetMachine<MipselTargetMachine> Y(getTheMipselTarget()); + RegisterTargetMachine<MipsebTargetMachine> A(getTheMips64Target()); + RegisterTargetMachine<MipselTargetMachine> B(getTheMips64elTarget()); } static std::string computeDataLayout(const Triple &TT, StringRef CPU, diff --git a/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp b/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp index 6a65943515b..4c1edfaaaec 100644 --- a/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp +++ b/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp @@ -12,20 +12,37 @@ #include "llvm/Support/TargetRegistry.h" using namespace llvm; -Target llvm::TheMipsTarget, llvm::TheMipselTarget; -Target llvm::TheMips64Target, llvm::TheMips64elTarget; +Target &llvm::getTheMipsTarget() { + static Target TheMipsTarget; + return TheMipsTarget; +} +Target &llvm::getTheMipselTarget() { + static Target TheMipselTarget; + return TheMipselTarget; +} +Target &llvm::getTheMips64Target() { + static Target TheMips64Target; + return TheMips64Target; +} +Target &llvm::getTheMips64elTarget() { + static Target TheMips64elTarget; + return TheMips64elTarget; +} extern "C" void LLVMInitializeMipsTargetInfo() { RegisterTarget<Triple::mips, - /*HasJIT=*/true> X(TheMipsTarget, "mips", "Mips"); + /*HasJIT=*/true> + X(getTheMipsTarget(), "mips", "Mips"); RegisterTarget<Triple::mipsel, - /*HasJIT=*/true> Y(TheMipselTarget, "mipsel", "Mipsel"); + /*HasJIT=*/true> + Y(getTheMipselTarget(), "mipsel", "Mipsel"); RegisterTarget<Triple::mips64, - /*HasJIT=*/true> A(TheMips64Target, "mips64", "Mips64 [experimental]"); + /*HasJIT=*/true> + A(getTheMips64Target(), "mips64", "Mips64 [experimental]"); RegisterTarget<Triple::mips64el, - /*HasJIT=*/true> B(TheMips64elTarget, - "mips64el", "Mips64el [experimental]"); + /*HasJIT=*/true> + B(getTheMips64elTarget(), "mips64el", "Mips64el [experimental]"); } |