@@ -572,32 +572,8 @@ Interpreter::Parse(llvm::StringRef Code) {
572
572
auto *CudaParser = llvm::cast<IncrementalCUDADeviceParser>(DeviceParser.get ());
573
573
llvm::errs () << " [CUDA] Registering device PTU...\n " ;
574
574
575
- PartialTranslationUnit &DevicePTU = CudaParser->RegisterPTU (*DeviceTU);
576
- FrontendAction *WrappedAct = Act->getWrapped ();
577
- if (!WrappedAct->hasIRSupport ()) {
578
- llvm::errs () << " [CUDA] Error: WrappedAct has no IR support!\n " ;
579
- return llvm::make_error<llvm::StringError>(
580
- " Device action has no IR support" , llvm::inconvertibleErrorCode ());
581
- }
575
+ PartialTranslationUnit &DevicePTU = RegisterPTU (*DeviceTU);
582
576
583
- CodeGenerator *CG = static_cast <CodeGenAction *>(WrappedAct)->getCodeGenerator ();
584
- if (!CG) {
585
- llvm::errs () << " [CUDA] Error: CodeGen is null!\n " ;
586
- return llvm::make_error<llvm::StringError>(
587
- " Device CodeGen is null" , llvm::inconvertibleErrorCode ());
588
- }
589
- std::unique_ptr<llvm::Module> M (CG->ReleaseModule ());
590
- if (!M) {
591
- llvm::errs () << " [CUDA] Error: Released module is null!\n " ;
592
- return llvm::make_error<llvm::StringError>(
593
- " Device LLVM module is null" , llvm::inconvertibleErrorCode ());
594
- }
595
- static unsigned ID = 0 ;
596
- CG->StartModule (" incr_module_" + std::to_string (ID++), M->getContext ());
597
- DevicePTU.TheModule = std::move (M);
598
- llvm::errs () << " [CUDA] Assigned LLVM module to DevicePTU\n " ;
599
- llvm::errs () << " [CUDA] Registered device PTU. TUPart=" << DevicePTU.TUPart << " \n " ;
600
- llvm::errs () << " [CUDA] Generating PTX...\n " ;
601
577
llvm::Expected<llvm::StringRef> PTX = CudaParser->GeneratePTX ();
602
578
if (!PTX)
603
579
return PTX.takeError ();
0 commit comments