summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorColin LeMahieu <colinl@codeaurora.org>2015-02-19 17:38:39 +0000
committerColin LeMahieu <colinl@codeaurora.org>2015-02-19 17:38:39 +0000
commitf08a3ccf50791e4f3d05341754633ed7fc6371aa (patch)
tree680758322cb3801bbeb3d528f265967437951bf9 /llvm/lib
parent1c2beed7fd3c678112454353da3f65c561ea2dea (diff)
downloadbcm5719-llvm-f08a3ccf50791e4f3d05341754633ed7fc6371aa.tar.gz
bcm5719-llvm-f08a3ccf50791e4f3d05341754633ed7fc6371aa.zip
[Hexagon] Removing static variable holding MCInstrInfo.
llvm-svn: 229872
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp7
-rw-r--r--llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h3
-rw-r--r--llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp3
-rw-r--r--llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h2
4 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp
index 30da7d1b02f..6fef41809d9 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.cpp
@@ -17,10 +17,9 @@
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));
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h
index 5c9a5bd86d4..5aaa59e0f7c 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInst.h
+++ b/llvm/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 <MCInstrInfo const> MCII;
+ std::unique_ptr <MCInstrInfo const> MCII;
public:
explicit HexagonMCInst();
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
index ae5a22bdb01..0c911fd6999 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
+++ b/llvm/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/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
index 02fd5161d24..f074b6555ba 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h
+++ b/llvm/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,
OpenPOWER on IntegriCloud