diff options
Diffstat (limited to 'src/compiler_llvm/compiler_llvm.cc')
| -rw-r--r-- | src/compiler_llvm/compiler_llvm.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc index 098589459f..146f577e95 100644 --- a/src/compiler_llvm/compiler_llvm.cc +++ b/src/compiler_llvm/compiler_llvm.cc @@ -24,6 +24,8 @@ #include "oat_compilation_unit.h" #include "upcall_compiler.h" +#include <llvm/LinkAllPasses.h> +#include <llvm/LinkAllVMCore.h> #include <llvm/Support/TargetSelect.h> #include <llvm/Support/Threading.h> @@ -40,6 +42,19 @@ void InitializeLLVM() { llvm::InitializeAllAsmParsers(); // TODO: Maybe we don't have to initialize "all" targets. + // Initialize LLVM optimization passes + llvm::PassRegistry ®istry = *llvm::PassRegistry::getPassRegistry(); + + llvm::initializeCore(registry); + llvm::initializeScalarOpts(registry); + llvm::initializeIPO(registry); + llvm::initializeAnalysis(registry); + llvm::initializeIPA(registry); + llvm::initializeTransformUtils(registry); + llvm::initializeInstCombine(registry); + llvm::initializeInstrumentation(registry); + llvm::initializeTarget(registry); + // Initialize LLVM internal data structure for multithreading llvm::llvm_start_multithreaded(); } |