2020#include " llvm/BinaryFormat/Magic.h"
2121#include " llvm/Bitcode/BitcodeWriter.h"
2222#include " llvm/CodeGen/CommandFlags.h"
23+ #include " llvm/CodeGen/MachineModuleInfo.h"
2324#include " llvm/Frontend/Offloading/OffloadWrapper.h"
2425#include " llvm/Frontend/Offloading/Utility.h"
2526#include " llvm/IR/Constants.h"
@@ -1031,9 +1032,9 @@ Expected<StringRef> compileModule(Module &M, OffloadKind Kind) {
10311032 codegen::InitTargetOptionsFromCodeGenFlags (Triple (M.getTargetTriple ()));
10321033 StringRef CPU = " " ;
10331034 StringRef Features = " " ;
1034- std::unique_ptr<TargetMachine > TM (
1035+ std::unique_ptr<LLVMTargetMachine > TM ( static_cast <LLVMTargetMachine *> (
10351036 T->createTargetMachine (M.getTargetTriple (), CPU, Features, Options,
1036- Reloc::PIC_, M.getCodeModel ()));
1037+ Reloc::PIC_, M.getCodeModel ()))) ;
10371038
10381039 if (M.getDataLayout ().isDefault ())
10391040 M.setDataLayout (TM->createDataLayout ());
@@ -1051,9 +1052,10 @@ Expected<StringRef> compileModule(Module &M, OffloadKind Kind) {
10511052 auto OS = std::make_unique<llvm::raw_fd_ostream>(FD, true );
10521053
10531054 legacy::PassManager CodeGenPasses;
1055+ MachineModuleInfo MMI (TM.get ());
10541056 TargetLibraryInfoImpl TLII (Triple (M.getTargetTriple ()));
10551057 CodeGenPasses.add (new TargetLibraryInfoWrapperPass (TLII));
1056- if (TM->addPassesToEmitFile (CodeGenPasses, *OS, nullptr ,
1058+ if (TM->addPassesToEmitFile (CodeGenPasses, MMI, *OS, nullptr ,
10571059 CodeGenFileType::ObjectFile))
10581060 return createStringError (" Failed to execute host backend" );
10591061 CodeGenPasses.run (M);
0 commit comments