mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-29 06:30:30 +00:00
createMCInstPrinter doesn't need TargetMachine anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a3574fb7e5
commit
b262799d49
@ -85,7 +85,6 @@ namespace llvm {
|
||||
TargetMachine &TM);
|
||||
typedef MCDisassembler *(*MCDisassemblerCtorTy)(const Target &T);
|
||||
typedef MCInstPrinter *(*MCInstPrinterCtorTy)(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI);
|
||||
typedef MCCodeEmitter *(*CodeEmitterCtorTy)(const Target &T,
|
||||
@ -334,12 +333,11 @@ namespace llvm {
|
||||
return MCDisassemblerCtorFn(*this);
|
||||
}
|
||||
|
||||
MCInstPrinter *createMCInstPrinter(TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
MCInstPrinter *createMCInstPrinter(unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) const {
|
||||
if (!MCInstPrinterCtorFn)
|
||||
return 0;
|
||||
return MCInstPrinterCtorFn(*this, TM, SyntaxVariant, MAI);
|
||||
return MCInstPrinterCtorFn(*this, SyntaxVariant, MAI);
|
||||
}
|
||||
|
||||
|
||||
|
@ -136,7 +136,7 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
||||
default: return true;
|
||||
case CGFT_AssemblyFile: {
|
||||
MCInstPrinter *InstPrinter =
|
||||
getTarget().createMCInstPrinter(*this, MAI.getAssemblerDialect(), MAI);
|
||||
getTarget().createMCInstPrinter(MAI.getAssemblerDialect(), MAI);
|
||||
|
||||
// Create a code emitter if asked to show the encoding.
|
||||
MCCodeEmitter *MCE = 0;
|
||||
|
@ -45,6 +45,7 @@ void ScheduleDAG::EmitPhysRegCopy(SUnit *SU,
|
||||
unsigned Reg = 0;
|
||||
for (SUnit::const_succ_iterator II = SU->Succs.begin(),
|
||||
EE = SU->Succs.end(); II != EE; ++II) {
|
||||
if (II->isCtrl()) continue; // ignore chain preds
|
||||
if (II->getReg()) {
|
||||
Reg = II->getReg();
|
||||
break;
|
||||
|
@ -79,7 +79,7 @@ LLVMDisasmContextRef LLVMCreateDisasm(const char *TripleName, void *DisInfo,
|
||||
|
||||
// Set up the instruction printer.
|
||||
int AsmPrinterVariant = MAI->getAssemblerDialect();
|
||||
MCInstPrinter *IP = TheTarget->createMCInstPrinter(*TM, AsmPrinterVariant,
|
||||
MCInstPrinter *IP = TheTarget->createMCInstPrinter(AsmPrinterVariant,
|
||||
*MAI);
|
||||
assert(IP && "Unable to create instruction printer!");
|
||||
|
||||
|
@ -193,8 +193,7 @@ EDDisassembler::EDDisassembler(CPUKey &key) :
|
||||
|
||||
InstString.reset(new std::string);
|
||||
InstStream.reset(new raw_string_ostream(*InstString));
|
||||
InstPrinter.reset(Tgt->createMCInstPrinter(*TargetMachine, LLVMSyntaxVariant,
|
||||
*AsmInfo));
|
||||
InstPrinter.reset(Tgt->createMCInstPrinter(LLVMSyntaxVariant, *AsmInfo));
|
||||
|
||||
if (!InstPrinter)
|
||||
return;
|
||||
|
@ -1954,11 +1954,10 @@ void ARMAsmPrinter::EmitInstruction(const MachineInstr *MI) {
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
static MCInstPrinter *createARMMCInstPrinter(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) {
|
||||
if (SyntaxVariant == 0)
|
||||
return new ARMInstPrinter(TM, MAI);
|
||||
return new ARMInstPrinter(MAI);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -19,11 +19,10 @@
|
||||
namespace llvm {
|
||||
|
||||
class MCOperand;
|
||||
class TargetMachine;
|
||||
|
||||
class ARMInstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
ARMInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI)
|
||||
ARMInstPrinter(const MCAsmInfo &MAI)
|
||||
: MCInstPrinter(MAI) {}
|
||||
|
||||
virtual void printInst(const MCInst *MI, raw_ostream &O);
|
||||
|
@ -18,11 +18,10 @@
|
||||
|
||||
namespace llvm {
|
||||
class MCOperand;
|
||||
class TargetMachine;
|
||||
|
||||
class MBlazeInstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
MBlazeInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI)
|
||||
MBlazeInstPrinter(const MCAsmInfo &MAI)
|
||||
: MCInstPrinter(MAI) {}
|
||||
|
||||
virtual void printInst(const MCInst *MI, raw_ostream &O);
|
||||
|
@ -319,11 +319,10 @@ isBlockOnlyReachableByFallthrough(const MachineBasicBlock *MBB) const {
|
||||
}
|
||||
|
||||
static MCInstPrinter *createMBlazeMCInstPrinter(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) {
|
||||
if (SyntaxVariant == 0)
|
||||
return new MBlazeInstPrinter(TM, MAI);
|
||||
return new MBlazeInstPrinter(MAI);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -18,11 +18,10 @@
|
||||
|
||||
namespace llvm {
|
||||
class MCOperand;
|
||||
class TargetMachine;
|
||||
|
||||
class MSP430InstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
MSP430InstPrinter(TargetMachine &TM, const MCAsmInfo &MAI)
|
||||
MSP430InstPrinter(const MCAsmInfo &MAI)
|
||||
: MCInstPrinter(MAI) {}
|
||||
|
||||
virtual void printInst(const MCInst *MI, raw_ostream &O);
|
||||
|
@ -164,11 +164,10 @@ void MSP430AsmPrinter::EmitInstruction(const MachineInstr *MI) {
|
||||
}
|
||||
|
||||
static MCInstPrinter *createMSP430MCInstPrinter(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) {
|
||||
if (SyntaxVariant == 0)
|
||||
return new MSP430InstPrinter(TM, MAI);
|
||||
return new MSP430InstPrinter(MAI);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -19,14 +19,12 @@
|
||||
namespace llvm {
|
||||
|
||||
class MCOperand;
|
||||
class TargetMachine;
|
||||
|
||||
class PPCInstPrinter : public MCInstPrinter {
|
||||
// 0 -> AIX, 1 -> Darwin.
|
||||
unsigned SyntaxVariant;
|
||||
public:
|
||||
PPCInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI,
|
||||
unsigned syntaxVariant)
|
||||
PPCInstPrinter(const MCAsmInfo &MAI, unsigned syntaxVariant)
|
||||
: MCInstPrinter(MAI), SyntaxVariant(syntaxVariant) {}
|
||||
|
||||
bool isDarwinSyntax() const {
|
||||
|
@ -680,10 +680,9 @@ static AsmPrinter *createPPCAsmPrinterPass(TargetMachine &tm,
|
||||
}
|
||||
|
||||
static MCInstPrinter *createPPCMCInstPrinter(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) {
|
||||
return new PPCInstPrinter(TM, MAI, SyntaxVariant);
|
||||
return new PPCInstPrinter(MAI, SyntaxVariant);
|
||||
}
|
||||
|
||||
|
||||
|
@ -15,7 +15,6 @@
|
||||
#define DEBUG_TYPE "asm-printer"
|
||||
#include "X86ATTInstPrinter.h"
|
||||
#include "X86InstComments.h"
|
||||
#include "X86Subtarget.h"
|
||||
#include "MCTargetDesc/X86TargetDesc.h"
|
||||
#include "llvm/MC/MCInst.h"
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
@ -31,7 +30,7 @@ using namespace llvm;
|
||||
#define PRINT_ALIAS_INSTR
|
||||
#include "X86GenAsmWriter.inc"
|
||||
|
||||
X86ATTInstPrinter::X86ATTInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI)
|
||||
X86ATTInstPrinter::X86ATTInstPrinter(const MCAsmInfo &MAI)
|
||||
: MCInstPrinter(MAI) {
|
||||
}
|
||||
|
||||
|
@ -19,12 +19,10 @@
|
||||
namespace llvm {
|
||||
|
||||
class MCOperand;
|
||||
class X86Subtarget;
|
||||
class TargetMachine;
|
||||
|
||||
class X86ATTInstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
X86ATTInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI);
|
||||
X86ATTInstPrinter(const MCAsmInfo &MAI);
|
||||
|
||||
virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
|
||||
virtual void printInst(const MCInst *MI, raw_ostream &OS);
|
||||
|
@ -15,7 +15,6 @@
|
||||
#define DEBUG_TYPE "asm-printer"
|
||||
#include "X86IntelInstPrinter.h"
|
||||
#include "X86InstComments.h"
|
||||
#include "X86Subtarget.h"
|
||||
#include "MCTargetDesc/X86TargetDesc.h"
|
||||
#include "llvm/MC/MCInst.h"
|
||||
#include "llvm/MC/MCAsmInfo.h"
|
||||
|
@ -20,11 +20,10 @@
|
||||
namespace llvm {
|
||||
|
||||
class MCOperand;
|
||||
class TargetMachine;
|
||||
|
||||
class X86IntelInstPrinter : public MCInstPrinter {
|
||||
public:
|
||||
X86IntelInstPrinter(TargetMachine &TM, const MCAsmInfo &MAI)
|
||||
X86IntelInstPrinter(const MCAsmInfo &MAI)
|
||||
: MCInstPrinter(MAI) {}
|
||||
|
||||
virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
|
||||
|
@ -709,13 +709,12 @@ void X86AsmPrinter::PrintDebugValueComment(const MachineInstr *MI,
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
static MCInstPrinter *createX86MCInstPrinter(const Target &T,
|
||||
TargetMachine &TM,
|
||||
unsigned SyntaxVariant,
|
||||
const MCAsmInfo &MAI) {
|
||||
if (SyntaxVariant == 0)
|
||||
return new X86ATTInstPrinter(TM, MAI);
|
||||
return new X86ATTInstPrinter(MAI);
|
||||
if (SyntaxVariant == 1)
|
||||
return new X86IntelInstPrinter(TM, MAI);
|
||||
return new X86IntelInstPrinter(MAI);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,7 @@ static bool ByteArrayFromString(ByteArrayTy &ByteArray,
|
||||
return false;
|
||||
}
|
||||
|
||||
int Disassembler::disassemble(const Target &T, TargetMachine &TM,
|
||||
int Disassembler::disassemble(const Target &T,
|
||||
const std::string &Triple,
|
||||
MemoryBuffer &Buffer,
|
||||
raw_ostream &Out) {
|
||||
@ -146,7 +146,7 @@ int Disassembler::disassemble(const Target &T, TargetMachine &TM,
|
||||
}
|
||||
|
||||
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
|
||||
OwningPtr<MCInstPrinter> IP(T.createMCInstPrinter(TM, AsmPrinterVariant,
|
||||
OwningPtr<MCInstPrinter> IP(T.createMCInstPrinter(AsmPrinterVariant,
|
||||
*AsmInfo));
|
||||
if (!IP) {
|
||||
errs() << "error: no instruction printer for target " << Triple << '\n';
|
||||
|
@ -21,13 +21,11 @@ namespace llvm {
|
||||
|
||||
class MemoryBuffer;
|
||||
class Target;
|
||||
class TargetMachine;
|
||||
class raw_ostream;
|
||||
|
||||
class Disassembler {
|
||||
public:
|
||||
static int disassemble(const Target &target,
|
||||
TargetMachine &TM,
|
||||
const std::string &tripleString,
|
||||
MemoryBuffer &buffer,
|
||||
raw_ostream &Out);
|
||||
|
@ -343,7 +343,7 @@ static int AssembleInput(const char *ProgName) {
|
||||
// FIXME: There is a bit of code duplication with addPassesToEmitFile.
|
||||
if (FileType == OFT_AssemblyFile) {
|
||||
MCInstPrinter *IP =
|
||||
TheTarget->createMCInstPrinter(*TM, OutputAsmVariant, *MAI);
|
||||
TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI);
|
||||
MCCodeEmitter *CE = 0;
|
||||
TargetAsmBackend *TAB = 0;
|
||||
if (ShowEncoding) {
|
||||
@ -426,7 +426,7 @@ static int DisassembleInput(const char *ProgName, bool Enhanced) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
Res = Disassembler::disassemble(*TheTarget, *TM, TripleName,
|
||||
Res = Disassembler::disassemble(*TheTarget, TripleName,
|
||||
*Buffer.take(), Out->os());
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,6 @@
|
||||
#include "llvm/Support/SourceMgr.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Support/system_error.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
#include "llvm/Target/TargetSelect.h"
|
||||
#include <algorithm>
|
||||
@ -196,22 +195,9 @@ static void DisassembleInput(const StringRef &Filename) {
|
||||
return;
|
||||
}
|
||||
|
||||
// FIXME: We shouldn't need to do this (and link in codegen).
|
||||
// When we split this out, we should do it in a way that makes
|
||||
// it straightforward to switch subtargets on the fly (.e.g,
|
||||
// the .cpu and .code16 directives).
|
||||
std::string FeaturesStr;
|
||||
std::string CPU;
|
||||
OwningPtr<TargetMachine> TM(TheTarget->createTargetMachine(TripleName, CPU,
|
||||
FeaturesStr));
|
||||
if (!TM) {
|
||||
errs() << "error: could not create target for triple " << TripleName << "\n";
|
||||
return;
|
||||
}
|
||||
|
||||
int AsmPrinterVariant = AsmInfo->getAssemblerDialect();
|
||||
OwningPtr<MCInstPrinter> IP(TheTarget->createMCInstPrinter(
|
||||
*TM, AsmPrinterVariant, *AsmInfo));
|
||||
AsmPrinterVariant, *AsmInfo));
|
||||
if (!IP) {
|
||||
errs() << "error: no instruction printer for target " << TripleName << '\n';
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user