|
13 | 13 | #include "Wasm.h" |
14 | 14 | #include "IncrementalExecutor.h" |
15 | 15 |
|
| 16 | +#include <llvm/CodeGen/MachineModuleInfo.h> |
16 | 17 | #include <llvm/IR/LegacyPassManager.h> |
17 | 18 | #include <llvm/IR/Module.h> |
18 | 19 | #include <llvm/MC/TargetRegistry.h> |
@@ -48,16 +49,18 @@ llvm::Error WasmIncrementalExecutor::addModule(PartialTranslationUnit &PTU) { |
48 | 49 | } |
49 | 50 |
|
50 | 51 | llvm::TargetOptions TO = llvm::TargetOptions(); |
51 | | - llvm::TargetMachine *TargetMachine = Target->createTargetMachine( |
52 | | - PTU.TheModule->getTargetTriple(), "", "", TO, llvm::Reloc::Model::PIC_); |
| 52 | + auto *TargetMachine = static_cast<llvm::LLVMTargetMachine *>( |
| 53 | + Target->createTargetMachine(PTU.TheModule->getTargetTriple(), "", "", TO, |
| 54 | + llvm::Reloc::Model::PIC_)); |
53 | 55 | PTU.TheModule->setDataLayout(TargetMachine->createDataLayout()); |
54 | 56 | std::string OutputFileName = PTU.TheModule->getName().str() + ".wasm"; |
55 | 57 |
|
56 | 58 | std::error_code Error; |
57 | 59 | llvm::raw_fd_ostream OutputFile(llvm::StringRef(OutputFileName), Error); |
58 | 60 |
|
59 | 61 | llvm::legacy::PassManager PM; |
60 | | - if (TargetMachine->addPassesToEmitFile(PM, OutputFile, nullptr, |
| 62 | + llvm::MachineModuleInfo MMI(TargetMachine); |
| 63 | + if (TargetMachine->addPassesToEmitFile(PM, MMI, OutputFile, nullptr, |
61 | 64 | llvm::CodeGenFileType::ObjectFile)) { |
62 | 65 | return llvm::make_error<llvm::StringError>( |
63 | 66 | "Wasm backend cannot produce object.", llvm::inconvertibleErrorCode()); |
|
0 commit comments