forked from OSchip/llvm-project
[Clang] Fix the wrong features being derivec in the offload packager
The offload packager embeds the features in the offloading binary when performing LTO. This had an incorrect interaction with the `--cuda-feature` option because we weren't deriving the features from the CUDA toolchain arguments when it was being specified. This patch fixes this so the features are correctly overrideen when using this argument. However, this brings up a question of how best to handle conflicting target features. The user could compile many libraries with different features, in this case we do not know which one to pick. This was not previously a problem when we simply passed the features in from the CUDA installation at link-link because we just defaulted to whatever was current on the system. Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D129393
This commit is contained in:
parent
d36b96afb2
commit
24849c9eb5
|
@ -8325,7 +8325,8 @@ void OffloadPackager::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
ArgStringList Features;
|
||||
SmallVector<StringRef> FeatureArgs;
|
||||
getTargetFeatures(TC->getDriver(), TC->getTriple(), Args, Features, false);
|
||||
getTargetFeatures(TC->getDriver(), TC->getTriple(), TCArgs, Features,
|
||||
false);
|
||||
llvm::copy_if(Features, std::back_inserter(FeatureArgs),
|
||||
[](StringRef Arg) { return !Arg.startswith("-target"); });
|
||||
|
||||
|
|
|
@ -120,3 +120,9 @@
|
|||
// RUN: -foffload-lto %s 2>&1 | FileCheck --check-prefix=CHECK-LTO-FEATURES %s
|
||||
|
||||
// CHECK-LTO-FEATURES: clang-offload-packager{{.*}}--image={{.*}}feature=+ptx{{[0-9]+}}
|
||||
|
||||
// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp --offload-arch=sm_52 -nogpulib \
|
||||
// RUN: -Xopenmp-target=nvptx64-nvidia-cuda --cuda-feature=+ptx64 -foffload-lto %s 2>&1 \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-SET-FEATURES %s
|
||||
|
||||
// CHECK-SET-FEATURES: clang-offload-packager{{.*}}--image={{.*}}feature=+ptx64
|
||||
|
|
Loading…
Reference in New Issue