diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-11 13:20:40 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-11-11 13:20:40 +0000 |
commit | 178051fbae2b224ecc5aa20e39b7cee3ab38e760 (patch) | |
tree | 92ac4e304f300cb08780d19f684cc6fe7a62d59e /tools | |
parent | eea66f63d98771a2772f5173debf954a81f3f782 (diff) | |
download | llvm-178051fbae2b224ecc5aa20e39b7cee3ab38e760.tar.gz llvm-178051fbae2b224ecc5aa20e39b7cee3ab38e760.tar.bz2 llvm-178051fbae2b224ecc5aa20e39b7cee3ab38e760.tar.xz |
Clients are responsible for initializing the targets, remove it from the disassembler API.
This will break users of the LLVMCreateDisasm API (not that I know of any). They have to call the
LLVMInitializeAll* functions from llvm-c/Target.h themselves now. edis' C API in all its horribleness
should be unaffected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144385 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/edis/EDMain.cpp | 13 | ||||
-rw-r--r-- | tools/llvm-mc/Disassembler.cpp | 1 |
2 files changed, 11 insertions, 3 deletions
diff --git a/tools/edis/EDMain.cpp b/tools/edis/EDMain.cpp index 16855b3f45..14a17d66e6 100644 --- a/tools/edis/EDMain.cpp +++ b/tools/edis/EDMain.cpp @@ -17,14 +17,23 @@ #include "../../lib/MC/MCDisassembler/EDInst.h" #include "../../lib/MC/MCDisassembler/EDOperand.h" #include "../../lib/MC/MCDisassembler/EDToken.h" +#include "llvm/Support/TargetSelect.h" #include "llvm-c/EnhancedDisassembly.h" using namespace llvm; int EDGetDisassembler(EDDisassemblerRef *disassembler, const char *triple, EDAssemblySyntax_t syntax) { - EDDisassembler::initialize(); - + static bool initialized; + if (!initialized) { + // Initialize targets and assembly printers/parsers. + llvm::InitializeAllTargetInfos(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllAsmParsers(); + llvm::InitializeAllDisassemblers(); + initialized = true; + } + EDDisassembler::AssemblySyntax Syntax; switch (syntax) { default: assert(0 && "Unknown assembly syntax!"); diff --git a/tools/llvm-mc/Disassembler.cpp b/tools/llvm-mc/Disassembler.cpp index e0064888de..1b5aa5775c 100644 --- a/tools/llvm-mc/Disassembler.cpp +++ b/tools/llvm-mc/Disassembler.cpp @@ -249,7 +249,6 @@ int Disassembler::disassembleEnhanced(const std::string &TS, break; } - EDDisassembler::initialize(); OwningPtr<EDDisassembler> disassembler(EDDisassembler::getDisassembler(TS.c_str(), AS)); |