================ @@ -28,20 +28,21 @@ IncrementalCUDADeviceParser::IncrementalCUDADeviceParser( std::unique_ptr<CompilerInstance> DeviceInstance, CompilerInstance &HostInstance, llvm::IntrusiveRefCntPtr<llvm::vfs::InMemoryFileSystem> FS, - llvm::Error &Err, const std::list<PartialTranslationUnit> &PTUs) + llvm::Error &Err, std::list<PartialTranslationUnit> &PTUs) : IncrementalParser(*DeviceInstance, Err), PTUs(PTUs), VFS(FS), CodeGenOpts(HostInstance.getCodeGenOpts()), - TargetOpts(HostInstance.getTargetOpts()) { + TargetOpts(DeviceInstance->getTargetOpts()) { ---------------- anutosh491 wrote:
`TargetOpts` should be fetched from `DeviceInstance` rather than `HostInstance` This can be seen even through the cc1 command generated through createCI (skipping some flags) ``` // FOR THE DEVICE (Skipping lot of flags just keeping the main ones) "/Users/anutosh491/work/llvm-project/build2/bin/clang-repl" -cc1 -triple nvptx64-nvidia-cuda -aux-triple arm64-apple-darwin24.3.0 ....... -aux-target-cpu apple-m1 ........ -target-cpu sm_35 -target-feature ...... --offload-new-driver -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fcolor-diagnostics -fincremental-extensions -cuid=6c8ca225f780e660 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o "/var/folders/m1/cdn74f917994jd99d_2cpf440000gn/T/<<< inputs >>>-sm_35-14d471.s" -x cuda "<<< inputs >>>" "ptxas" -m64 -O0 -v --gpu-name sm_35 --output-file "<<< inputs >>>-cuda-nvptx64-nvidia-cuda-sm_35.o" "/var/folders/m1/cdn74f917994jd99d_2cpf440000gn/T/<<< inputs >>>-sm_35-14d471.s" ``` As seen `-target-cpu sm_35` so the check below with regards to the `Arch` doesn't even make sense if we use it from the host side. `if (!Arch.starts_with("sm_") || Arch.substr(3).getAsInteger(10, SMVersion)) {` https://github.com/llvm/llvm-project/pull/136404 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits