From 5a716879701e60c3302c877d01244df34c917837 Mon Sep 17 00:00:00 2001 From: Colin LeMahieu Date: Thu, 19 Feb 2015 17:38:39 +0000 Subject: [PATCH] [Hexagon] Removing static variable holding MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229872 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp | 7 +++---- lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h | 3 +-- lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp | 3 +-- lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h | 2 ++ 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp b/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp index 30da7d1b02f..6fef41809d9 100644 --- a/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp +++ b/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp @@ -17,10 +17,9 @@ using namespace llvm; -std::unique_ptr HexagonMCInst::MCII; - -HexagonMCInst::HexagonMCInst() : MCInst() {} -HexagonMCInst::HexagonMCInst(MCInstrDesc const &mcid) : MCInst() {} +HexagonMCInst::HexagonMCInst() : MCII (createHexagonMCInstrInfo ()) {} +HexagonMCInst::HexagonMCInst(MCInstrDesc const &mcid) : + MCII (createHexagonMCInstrInfo ()){} void HexagonMCInst::AppendImplicitOperands(MCInst &MCI) { MCI.addOperand(MCOperand::CreateImm(0)); diff --git a/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h b/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h index 5c9a5bd86d4..5aaa59e0f7c 100644 --- a/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h +++ b/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h @@ -23,9 +23,8 @@ namespace llvm { class MCOperand; class HexagonMCInst : public MCInst { - friend void ::LLVMInitializeHexagonTargetMC(); // Used to access TSFlags - static std::unique_ptr MCII; + std::unique_ptr MCII; public: explicit HexagonMCInst(); diff --git a/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp b/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp index ae5a22bdb01..0c911fd6999 100644 --- a/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp +++ b/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp @@ -36,7 +36,7 @@ using namespace llvm; #define GET_REGINFO_MC_DESC #include "HexagonGenRegisterInfo.inc" -static MCInstrInfo *createHexagonMCInstrInfo() { +MCInstrInfo *llvm::createHexagonMCInstrInfo() { MCInstrInfo *X = new MCInstrInfo(); InitHexagonMCInstrInfo(X); return X; @@ -116,7 +116,6 @@ extern "C" void LLVMInitializeHexagonTargetMC() { // Register the MC instruction info. TargetRegistry::RegisterMCInstrInfo(TheHexagonTarget, createHexagonMCInstrInfo); - HexagonMCInst::MCII.reset (createHexagonMCInstrInfo()); // Register the MC register info. TargetRegistry::RegisterMCRegInfo(TheHexagonTarget, diff --git a/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h b/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h index 02fd5161d24..f074b6555ba 100644 --- a/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h +++ b/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h @@ -30,6 +30,8 @@ class raw_ostream; extern Target TheHexagonTarget; +MCInstrInfo *createHexagonMCInstrInfo(); + MCCodeEmitter *createHexagonMCCodeEmitter(MCInstrInfo const &MCII, MCRegisterInfo const &MRI, MCSubtargetInfo const &MST, -- 2.34.1