Clean up and centralize LLVM target initialization

This commit is contained in:
Matt Pharr
2011-08-26 10:15:33 -07:00
parent a322398c62
commit 54ec56c81d
3 changed files with 20 additions and 20 deletions

View File

@@ -72,10 +72,6 @@ Module *m;
bool
Target::GetTarget(const char *arch, const char *cpu, const char *isa,
Target *t) {
// initialize available targets
LLVMInitializeX86Target();
LLVMInitializeX86TargetInfo();
if (cpu == NULL) {
std::string hostCPU = llvm::sys::getHostCPUName();
if (hostCPU.size() > 0)

View File

@@ -41,9 +41,17 @@
#include <stdlib.h>
#include <llvm/Support/PrettyStackTrace.h>
#ifdef LLVM_2_8
#include <llvm/System/Signals.h>
#include <llvm/System/Signals.h>
#else
#include <llvm/Support/Signals.h>
#include <llvm/Support/Signals.h>
#endif
#if defined(LLVM_3_0) || defined(LLVM_3_0svn)
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/TargetSelect.h>
#else
#include <llvm/Target/TargetRegistry.h>
#include <llvm/Target/TargetSelect.h>
#include <llvm/Target/SubtargetFeature.h>
#endif
#ifdef ISPC_IS_WINDOWS
@@ -154,6 +162,16 @@ int main(int Argc, char *Argv[]) {
llvm::sys::PrintStackTraceOnErrorSignal();
llvm::PrettyStackTraceProgram X(argc, argv);
// initialize available LLVM targets
LLVMInitializeX86TargetInfo();
LLVMInitializeX86Target();
LLVMInitializeX86AsmPrinter();
LLVMInitializeX86AsmParser();
LLVMInitializeX86Disassembler();
#if defined(LLVM_3_0) || defined(LLVM_3_0svn)
LLVMInitializeX86TargetMC();
#endif
char *file = NULL;
const char *headerFileName = NULL;
const char *outFileName = NULL;

View File

@@ -74,14 +74,6 @@
#include <llvm/Target/TargetMachine.h>
#include <llvm/Target/TargetOptions.h>
#include <llvm/Target/TargetData.h>
#if defined(LLVM_3_0) || defined(LLVM_3_0svn)
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/TargetSelect.h>
#else
#include <llvm/Target/TargetRegistry.h>
#include <llvm/Target/TargetSelect.h>
#include <llvm/Target/SubtargetFeature.h>
#endif
#include <llvm/PassManager.h>
#include <llvm/Analysis/Verifier.h>
#include <llvm/Support/CFG.h>
@@ -935,12 +927,6 @@ Module::WriteOutput(OutputType outputType, const char *outFileName) {
bool
Module::writeObjectFileOrAssembly(OutputType outputType, const char *outFileName) {
#if defined(LLVM_3_0) || defined(LLVM_3_0svn)
LLVMInitializeX86TargetMC();
#endif
LLVMInitializeX86AsmPrinter();
LLVMInitializeX86AsmParser();
llvm::TargetMachine *targetMachine = g->target.GetTargetMachine();
// Figure out if we're generating object file or assembly output, and