[Hexagon] Removing static variable holding MCInstrInfo.
authorColin LeMahieu <colinl@codeaurora.org>
Thu, 19 Feb 2015 17:38:39 +0000 (17:38 +0000)
committerColin LeMahieu <colinl@codeaurora.org>
Thu, 19 Feb 2015 17:38:39 +0000 (17:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229872 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp
lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h
lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h

index 30da7d1b02f7d06419a0659638bbbbec09a15793..6fef41809d97b67c66522a12d515cceca38c9b0a 100644 (file)
 
 using namespace llvm;
 
-std::unique_ptr <MCInstrInfo const> 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));
index 5c9a5bd86d4fe0c28f0d8a89539bb772f0c24106..5aaa59e0f7c8ab210a6565e9d1994e8e85cf246b 100644 (file)
@@ -23,9 +23,8 @@ namespace llvm {
 class MCOperand;
 
 class HexagonMCInst : public MCInst {
-  friend void ::LLVMInitializeHexagonTargetMC();
   // Used to access TSFlags
-  static std::unique_ptr <MCInstrInfo const> MCII;
+  std::unique_ptr <MCInstrInfo const> MCII;
 
 public:
   explicit HexagonMCInst();
index ae5a22bdb01bd4af7a786afe7f94afbd0f8dfe47..0c911fd6999c8012a4623cf6674232c1f089f518 100644 (file)
@@ -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,
index 02fd5161d24a275564efb56c4f50323f76a82bf5..f074b6555baabab66116a1b0b4b0e55511f0aaa3 100644 (file)
@@ -30,6 +30,8 @@ class raw_ostream;
 
 extern Target TheHexagonTarget;
 
+MCInstrInfo *createHexagonMCInstrInfo();
+
 MCCodeEmitter *createHexagonMCCodeEmitter(MCInstrInfo const &MCII,
                                           MCRegisterInfo const &MRI,
                                           MCSubtargetInfo const &MST,