Skip to content

Commit 75dd38a

Browse files
committed
Migrated DeviceOffload.cpp to the new LLVMTargetMachine code emission API.
1 parent ed40387 commit 75dd38a

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

clang/lib/Interpreter/DeviceOffload.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "clang/Frontend/CompilerInstance.h"
1818
#include "clang/Interpreter/PartialTranslationUnit.h"
1919

20+
#include "llvm/CodeGen/MachineModuleInfo.h"
2021
#include "llvm/IR/LegacyPassManager.h"
2122
#include "llvm/IR/Module.h"
2223
#include "llvm/MC/TargetRegistry.h"
@@ -82,16 +83,18 @@ llvm::Expected<llvm::StringRef> IncrementalCUDADeviceParser::GeneratePTX() {
8283
return llvm::make_error<llvm::StringError>(std::move(Error),
8384
std::error_code());
8485
llvm::TargetOptions TO = llvm::TargetOptions();
85-
llvm::TargetMachine *TargetMachine = Target->createTargetMachine(
86-
PTU.TheModule->getTargetTriple(), TargetOpts.CPU, "", TO,
87-
llvm::Reloc::Model::PIC_);
86+
llvm::LLVMTargetMachine *TargetMachine =
87+
static_cast<llvm::LLVMTargetMachine *>(Target->createTargetMachine(
88+
PTU.TheModule->getTargetTriple(), TargetOpts.CPU, "", TO,
89+
llvm::Reloc::Model::PIC_));
8890
PTU.TheModule->setDataLayout(TargetMachine->createDataLayout());
8991

9092
PTXCode.clear();
9193
llvm::raw_svector_ostream dest(PTXCode);
9294

9395
llvm::legacy::PassManager PM;
94-
if (TargetMachine->addPassesToEmitFile(PM, dest, nullptr,
96+
llvm::MachineModuleInfo MMI(TargetMachine);
97+
if (TargetMachine->addPassesToEmitFile(PM, MMI, dest, nullptr,
9598
llvm::CodeGenFileType::AssemblyFile)) {
9699
return llvm::make_error<llvm::StringError>(
97100
"NVPTX backend cannot produce PTX code.",

0 commit comments

Comments
 (0)