@@ -552,21 +552,23 @@ void CodeGenModule::Release() {
552
552
}
553
553
}
554
554
555
- // Emit SYCL specific module metadata: OpenCL/SPIR version.
555
+ // Emit SYCL specific module metadata: OpenCL/SPIR version, OpenCL language .
556
556
if (LangOpts.SYCL ) {
557
- llvm::Metadata *OCLVerElts[] = {
558
- llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 1 )),
559
- llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 2 ))};
560
- llvm::NamedMDNode *OCLVerMD =
561
- TheModule.getOrInsertNamedMetadata (" opencl.ocl.version" );
562
557
llvm::LLVMContext &Ctx = TheModule.getContext ();
563
- OCLVerMD->addOperand (llvm::MDNode::get (Ctx, OCLVerElts));
564
558
llvm::Metadata *SPIRVerElts[] = {
565
559
llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 1 )),
566
560
llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 2 ))};
567
561
llvm::NamedMDNode *SPIRVerMD =
568
562
TheModule.getOrInsertNamedMetadata (" opencl.spir.version" );
569
563
SPIRVerMD->addOperand (llvm::MDNode::get (Ctx, SPIRVerElts));
564
+ // We are trying to look like OpenCL C++ for SPIR-V translator.
565
+ // 4 - OpenCL_CPP, 100000 - OpenCL C++ version 1.0
566
+ llvm::Metadata *SPIRVSourceElts[] = {
567
+ llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 4 )),
568
+ llvm::ConstantAsMetadata::get (llvm::ConstantInt::get (Int32Ty, 100000 ))};
569
+ llvm::NamedMDNode *SPIRVSourceMD =
570
+ TheModule.getOrInsertNamedMetadata (" spirv.Source" );
571
+ SPIRVSourceMD->addOperand (llvm::MDNode::get (Ctx, SPIRVSourceElts));
570
572
}
571
573
572
574
if (uint32_t PLevel = Context.getLangOpts ().PICLevel ) {
0 commit comments