summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
diff options
context:
space:
mode:
authorJustin Holewinski <jholewinski@nvidia.com>2013-08-06 14:13:27 +0000
committerJustin Holewinski <jholewinski@nvidia.com>2013-08-06 14:13:27 +0000
commita2a63d28df2a8c53aa3d6bb9357caadf5c0ae814 (patch)
treefd230a55c099a8dcc4f8ffe4ab439523ba5a3623 /llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
parent8c6cd93123cfaa1213f88506f0bee13c0b0029bb (diff)
downloadbcm5719-llvm-a2a63d28df2a8c53aa3d6bb9357caadf5c0ae814.tar.gz
bcm5719-llvm-a2a63d28df2a8c53aa3d6bb9357caadf5c0ae814.zip
[NVPTX] Start conversion to MC infrastructure
This change converts the NVPTX target to use the MC infrastructure instead of directly emitting MachineInstr instances. This brings the target more up-to-date with LLVM TOT, and should fix PR15175 and PR15958 (libNVPTXInstPrinter is empty) as a side-effect. llvm-svn: 187798
Diffstat (limited to 'llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp')
-rw-r--r--llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
index ccd29705df7..871bac94f84 100644
--- a/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
+++ b/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
@@ -13,6 +13,7 @@
#include "NVPTXMCTargetDesc.h"
#include "NVPTXMCAsmInfo.h"
+#include "InstPrinter/NVPTXInstPrinter.h"
#include "llvm/MC/MCCodeGenInfo.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
@@ -57,6 +58,17 @@ static MCCodeGenInfo *createNVPTXMCCodeGenInfo(
return X;
}
+static MCInstPrinter *createNVPTXMCInstPrinter(const Target &T,
+ unsigned SyntaxVariant,
+ const MCAsmInfo &MAI,
+ const MCInstrInfo &MII,
+ const MCRegisterInfo &MRI,
+ const MCSubtargetInfo &STI) {
+ if (SyntaxVariant == 0)
+ return new NVPTXInstPrinter(MAI, MII, MRI, STI);
+ return 0;
+}
+
// Force static initialization.
extern "C" void LLVMInitializeNVPTXTargetMC() {
// Register the MC asm info.
@@ -85,4 +97,9 @@ extern "C" void LLVMInitializeNVPTXTargetMC() {
TargetRegistry::RegisterMCSubtargetInfo(TheNVPTXTarget64,
createNVPTXMCSubtargetInfo);
+ // Register the MCInstPrinter.
+ TargetRegistry::RegisterMCInstPrinter(TheNVPTXTarget32,
+ createNVPTXMCInstPrinter);
+ TargetRegistry::RegisterMCInstPrinter(TheNVPTXTarget64,
+ createNVPTXMCInstPrinter);
}
OpenPOWER on IntegriCloud