diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-07-25 20:53:02 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-07-25 20:53:02 +0000 |
commit | 1b0fc9b4182d6bd0703cdfb3b0b91d1e093c946c (patch) | |
tree | 64704589c0214777f90b7cdafb20f25310d2cf06 /lib/MC | |
parent | af6981f2f59f0d825ad973e0bed8fff5d302196f (diff) | |
download | external_llvm-1b0fc9b4182d6bd0703cdfb3b0b91d1e093c946c.zip external_llvm-1b0fc9b4182d6bd0703cdfb3b0b91d1e093c946c.tar.gz external_llvm-1b0fc9b4182d6bd0703cdfb3b0b91d1e093c946c.tar.bz2 |
Fix last bits of MC layer issues. llvm-mc doesn't need to initialize TargetMachine's anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135963 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r-- | lib/MC/MCDisassembler/EDDisassembler.cpp | 28 | ||||
-rw-r--r-- | lib/MC/MCDisassembler/EDDisassembler.h | 6 |
2 files changed, 8 insertions, 26 deletions
diff --git a/lib/MC/MCDisassembler/EDDisassembler.cpp b/lib/MC/MCDisassembler/EDDisassembler.cpp index 5f8f15f..c75e274 100644 --- a/lib/MC/MCDisassembler/EDDisassembler.cpp +++ b/lib/MC/MCDisassembler/EDDisassembler.cpp @@ -34,8 +34,6 @@ #include "llvm/Support/MemoryObject.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Target/TargetRegistry.h" -#include "llvm/Target/TargetMachine.h" -#include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetSelect.h" using namespace llvm; @@ -107,7 +105,6 @@ void EDDisassembler::initialize() { sInitialized = true; InitializeAllTargetInfos(); - InitializeAllTargets(); InitializeAllTargetMCs(); InitializeAllAsmPrinters(); InitializeAllAsmParsers(); @@ -170,29 +167,18 @@ EDDisassembler::EDDisassembler(CPUKey &key) : if (!Tgt) return; - std::string CPU; - std::string featureString; - TargetMachine.reset(Tgt->createTargetMachine(tripleString, CPU, - featureString)); + MRI.reset(Tgt->createMCRegInfo(tripleString)); - // FIXME: It shouldn't be using TargetRegisterInfo! - const TargetRegisterInfo *registerInfo = TargetMachine->getRegisterInfo(); - - if (!registerInfo) + if (!MRI) return; - - initMaps(*registerInfo); + + initMaps(*MRI); AsmInfo.reset(Tgt->createMCAsmInfo(tripleString)); if (!AsmInfo) return; - MRI.reset(Tgt->createMCRegInfo(tripleString)); - - if (!MRI) - return; - Disassembler.reset(Tgt->createMCDisassembler()); if (!Disassembler) @@ -208,10 +194,10 @@ EDDisassembler::EDDisassembler(CPUKey &key) : return; GenericAsmLexer.reset(new AsmLexer(*AsmInfo)); - SpecificAsmLexer.reset(Tgt->createAsmLexer(*AsmInfo)); + SpecificAsmLexer.reset(Tgt->createAsmLexer(*MRI, *AsmInfo)); SpecificAsmLexer->InstallLexer(*GenericAsmLexer); - initMaps(*TargetMachine->getRegisterInfo()); + initMaps(*MRI); Valid = true; } @@ -273,7 +259,7 @@ EDInst *EDDisassembler::createInst(EDByteReaderCallback byteReader, } } -void EDDisassembler::initMaps(const TargetRegisterInfo ®isterInfo) { +void EDDisassembler::initMaps(const MCRegisterInfo ®isterInfo) { unsigned numRegisters = registerInfo.getNumRegs(); unsigned registerIndex; diff --git a/lib/MC/MCDisassembler/EDDisassembler.h b/lib/MC/MCDisassembler/EDDisassembler.h index 2171423..a79ba07 100644 --- a/lib/MC/MCDisassembler/EDDisassembler.h +++ b/lib/MC/MCDisassembler/EDDisassembler.h @@ -46,8 +46,6 @@ class SourceMgr; class Target; class TargetAsmLexer; class TargetAsmParser; -class TargetMachine; -class TargetRegisterInfo; struct EDInstInfo; struct EDInst; @@ -137,8 +135,6 @@ struct EDDisassembler { CPUKey Key; /// The LLVM target corresponding to the disassembler const llvm::Target *Tgt; - /// The target machine instance. - llvm::OwningPtr<llvm::TargetMachine> TargetMachine; /// The assembly information for the target architecture llvm::OwningPtr<const llvm::MCAsmInfo> AsmInfo; // The register information for the target architecture. @@ -219,7 +215,7 @@ struct EDDisassembler { /// info /// /// @arg registerInfo - the register information to use as a source - void initMaps(const llvm::TargetRegisterInfo ®isterInfo); + void initMaps(const llvm::MCRegisterInfo ®isterInfo); /// nameWithRegisterID - Returns the name (owned by the EDDisassembler) of a /// register for a given register ID, or NULL on failure /// |