r344281 - [HIP] Replace irif library with hip.amdgcn.bc
Author: aaronenyeshi Date: Thu Oct 11 12:41:54 2018 New Revision: 344281 URL: http://llvm.org/viewvc/llvm-project?rev=344281&view=rev Log: [HIP] Replace irif library with hip.amdgcn.bc No longer use irif amdgcn library, instead we will use the previous fence functions from new hip.amdgcn.bc bitcode library. Update hip-device-libs.hip test as well. Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/hip.amdgcn.bc Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp cfe/trunk/test/Driver/hip-device-libs.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=344281&r1=344280&r2=344281&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Thu Oct 11 12:41:54 2018 @@ -81,8 +81,8 @@ const char *AMDGCN::Linker::constructLLV else FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc"; -BCLibs.append({"opencl.amdgcn.bc", - "ocml.amdgcn.bc", "ockl.amdgcn.bc", "irif.amdgcn.bc", +BCLibs.append({"hip.amdgcn.bc", "opencl.amdgcn.bc", + "ocml.amdgcn.bc", "ockl.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc", FlushDenormalControlBC, "oclc_correctly_rounded_sqrt_on.amdgcn.bc", Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/hip.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/hip.amdgcn.bc?rev=344281&view=auto == (empty) Modified: cfe/trunk/test/Driver/hip-device-libs.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-device-libs.hip?rev=344281&r1=344280&r2=344281&view=diff == --- cfe/trunk/test/Driver/hip-device-libs.hip (original) +++ cfe/trunk/test/Driver/hip-device-libs.hip Thu Oct 11 12:41:54 2018 @@ -21,7 +21,8 @@ // COM: [[LLVM_LINK:"*.llvm-link"]] -// COM-SAME: {{.*}} "{{.*}}ocml.amdgcn.bc" "{{.*}}ockl.amdgcn.bc" "{{.*}}irif.amdgcn.bc" +// COM-SAME: "{{.*}}hip.amdgcn.bc" "{{.*}}opencl.amdgcn.bc" +// COM-SAME: "{{.*}}ocml.amdgcn.bc" "{{.*}}ockl.amdgcn.bc" // FLUSHD-SAME: {{.*}} "{{.*}}oclc_daz_opt_on.amdgcn.bc" // NOFLUSHD-SAME: {{.*}} "{{.*}}oclc_daz_opt_off.amdgcn.bc" // COM-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}" ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r344285 - [HIP] Remove unused irif bitcode from test
Author: aaronenyeshi Date: Thu Oct 11 12:52:32 2018 New Revision: 344285 URL: http://llvm.org/viewvc/llvm-project?rev=344285&view=rev Log: [HIP] Remove unused irif bitcode from test This is part of previous commit [HIP] Replace irif library with hip.amdgcn.bc Reviewers: yaxunl Differential Revision: https://reviews.llvm.org/D52673 Removed: cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc Removed: cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc?rev=344284&view=auto == (empty) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r356277 - [HIP-Clang] propagate -mllvm options to opt and llc
Author: aaronenyeshi Date: Fri Mar 15 10:31:51 2019 New Revision: 356277 URL: http://llvm.org/viewvc/llvm-project?rev=356277&view=rev Log: [HIP-Clang] propagate -mllvm options to opt and llc Change the HIP Toolchain to pass the OPT_mllvm options into OPT and LLC stages. Added a lit test to verify the command args. Reviewers: yaxunl Differential Revision: https://reviews.llvm.org/D59316 Added: cfe/trunk/test/Driver/hip-toolchain-mllvm.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=356277&r1=356276&r2=356277&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Fri Mar 15 10:31:51 2019 @@ -140,6 +140,11 @@ const char *AMDGCN::Linker::constructOpt } OptArgs.push_back("-mtriple=amdgcn-amd-amdhsa"); OptArgs.push_back(Args.MakeArgString("-mcpu=" + SubArchName)); + + for (const Arg *A : Args.filtered(options::OPT_mllvm)) { +OptArgs.push_back(A->getValue(0)); + } + OptArgs.push_back("-o"); std::string TmpFileName = C.getDriver().GetTemporaryPath( OutputFilePrefix.str() + "-optimized", "bc"); @@ -177,6 +182,10 @@ const char *AMDGCN::Linker::constructLlc if(!Features.empty()) LlcArgs.push_back(Args.MakeArgString(MAttrString)); + for (const Arg *A : Args.filtered(options::OPT_mllvm)) { +LlcArgs.push_back(A->getValue(0)); + } + // Add output filename LlcArgs.push_back("-o"); std::string LlcOutputFileName = Added: cfe/trunk/test/Driver/hip-toolchain-mllvm.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-toolchain-mllvm.hip?rev=356277&view=auto == --- cfe/trunk/test/Driver/hip-toolchain-mllvm.hip (added) +++ cfe/trunk/test/Driver/hip-toolchain-mllvm.hip Fri Mar 15 10:31:51 2019 @@ -0,0 +1,36 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -target x86_64-linux-gnu \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 \ +// RUN: -mllvm -amdgpu-function-calls=0 \ +// RUN: %s 2>&1 | FileCheck %s + +// CHECK: [[CLANG:".*clang.*"]] "-cc1" "-triple" "amdgcn-amd-amdhsa" +// CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" +// CHECK-SAME: {{.*}} "-target-cpu" "gfx803" +// CHECK-SAME: {{.*}} "-mllvm" "-amdgpu-function-calls=0" {{.*}} + +// CHECK: [[OPT:".*opt"]] {{".*-gfx803-linked.*bc"}} "-mtriple=amdgcn-amd-amdhsa" +// CHECK-SAME: "-mcpu=gfx803" "-amdgpu-function-calls=0" +// CHECK-SAME: "-o" [[OPT_803_BC:".*-gfx803-optimized.*bc"]] + +// CHECK: [[LLC: ".*llc"]] [[OPT_803_BC]] +// CHECK-SAME: "-mtriple=amdgcn-amd-amdhsa" "-filetype=obj" +// CHECK-SAME: {{.*}} "-mcpu=gfx803" +// CHECK-SAME: "-amdgpu-function-calls=0" "-o" {{".*-gfx803-.*o"}} + +// CHECK: [[CLANG]] "-cc1" "-triple" "amdgcn-amd-amdhsa" +// CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" "-emit-llvm-bc" +// CHECK-SAME: {{.*}} "-target-cpu" "gfx900" +// CHECK-SAME: {{.*}} "-mllvm" "-amdgpu-function-calls=0" {{.*}} + +// CHECK: [[OPT]] {{".*-gfx900-linked.*bc"}} "-mtriple=amdgcn-amd-amdhsa" +// CHECK-SAME: "-mcpu=gfx900" "-amdgpu-function-calls=0" +// CHECK-SAME: "-o" [[OPT_900_BC:".*-gfx900-optimized.*bc"]] + +// CHECK: [[LLC]] [[OPT_900_BC]] +// CHECK-SAME: "-mtriple=amdgcn-amd-amdhsa" "-filetype=obj" +// CHECK-SAME: {{.*}} "-mcpu=gfx900" +// CHECK-SAME: "-amdgpu-function-calls=0" "-o" {{".*-gfx900-.*o"}} ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r357520 - [HIP-Clang] Fat binary should not be produced for non GPU code
Author: aaronenyeshi Date: Tue Apr 2 13:10:18 2019 New Revision: 357520 URL: http://llvm.org/viewvc/llvm-project?rev=357520&view=rev Log: [HIP-Clang] Fat binary should not be produced for non GPU code Skip producing the fat binary functions for HIP when no device code is present. Reviewers: yaxunl Differential Review: https://reviews.llvm.org/D60141 Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp cfe/trunk/test/CodeGenCUDA/device-stub.cu Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCUDANV.cpp?rev=357520&r1=357519&r2=357520&view=diff == --- cfe/trunk/lib/CodeGen/CGCUDANV.cpp (original) +++ cfe/trunk/lib/CodeGen/CGCUDANV.cpp Tue Apr 2 13:10:18 2019 @@ -472,6 +472,8 @@ llvm::Function *CGNVCUDARuntime::makeMod StringRef CudaGpuBinaryFileName = CGM.getCodeGenOpts().CudaGpuBinaryFileName; if (CudaGpuBinaryFileName.empty() && !IsHIP) return nullptr; + if (IsHIP && EmittedKernels.empty() && DeviceVars.empty()) +return nullptr; // void __{cuda|hip}_register_globals(void* handle); llvm::Function *RegisterGlobalsFunc = makeRegisterGlobalsFn(); Modified: cfe/trunk/test/CodeGenCUDA/device-stub.cu URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCUDA/device-stub.cu?rev=357520&r1=357519&r2=357520&view=diff == --- cfe/trunk/test/CodeGenCUDA/device-stub.cu (original) +++ cfe/trunk/test/CodeGenCUDA/device-stub.cu Tue Apr 2 13:10:18 2019 @@ -228,13 +228,19 @@ void hostfunc(void) { kernelfunc<<<1, 1> // device-side globals, but we still need to register GPU binary. // Skip GPU binary string first. // CUDANOGLOBALS: @{{.*}} = private constant{{.*}} -// HIPNOGLOBALS: @{{.*}} = internal constant{{.*}} +// HIPNOGLOBALS-NOT: @{{.*}} = internal constant{{.*}} // NOGLOBALS-NOT: define internal void @__{{.*}}_register_globals -// NOGLOBALS: define internal void @__[[PREFIX:cuda|hip]]_module_ctor -// NOGLOBALS: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper +// CUDANOGLOBALS: define internal void @__[[PREFIX:cuda|hip]]_module_ctor +// CUDANOGLOBALS: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper // NOGLOBALS-NOT: call void @__[[PREFIX]]_register_globals -// NOGLOBALS: define internal void @__[[PREFIX]]_module_dtor -// NOGLOBALS: call void @__[[PREFIX]]UnregisterFatBinary +// CUDANOGLOBALS: define internal void @__[[PREFIX]]_module_dtor +// CUDANOGLOBALS: call void @__[[PREFIX]]UnregisterFatBinary + +// There should be no fat binary functions when no device-code is found for HIP. +// HIPNOGLOBALS-NOT: define internal void @__[[PREFIX:cuda|hip]]_module_ctor +// HIPNOGLOBALS-NOT: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper +// HIPNOGLOBALS-NOT: define internal void @__[[PREFIX]]_module_dtor +// HIPNOGLOBALS-NOT: call void @__[[PREFIX]]UnregisterFatBinary // There should be no constructors/destructors if we have no GPU binary. // NOGPUBIN-NOT: define internal void @__[[PREFIX]]_register_globals ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r357526 - [HIP-Clang] Fat binary should not be produced for non GPU code 2
Author: aaronenyeshi Date: Tue Apr 2 13:49:41 2019 New Revision: 357526 URL: http://llvm.org/viewvc/llvm-project?rev=357526&view=rev Log: [HIP-Clang] Fat binary should not be produced for non GPU code 2 Also for CUDA, we need to disable producing these fat binary functions when there is no GPU code. Reviewers: yaxunl, tra Differential Revision: https://reviews.llvm.org/D60141 Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp cfe/trunk/test/CodeGenCUDA/device-stub.cu Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCUDANV.cpp?rev=357526&r1=357525&r2=357526&view=diff == --- cfe/trunk/lib/CodeGen/CGCUDANV.cpp (original) +++ cfe/trunk/lib/CodeGen/CGCUDANV.cpp Tue Apr 2 13:49:41 2019 @@ -468,11 +468,13 @@ llvm::Function *CGNVCUDARuntime::makeReg /// \endcode llvm::Function *CGNVCUDARuntime::makeModuleCtorFunction() { bool IsHIP = CGM.getLangOpts().HIP; + bool IsCUDA = CGM.getLangOpts().CUDA; // No need to generate ctors/dtors if there is no GPU binary. StringRef CudaGpuBinaryFileName = CGM.getCodeGenOpts().CudaGpuBinaryFileName; if (CudaGpuBinaryFileName.empty() && !IsHIP) return nullptr; - if (IsHIP && EmittedKernels.empty() && DeviceVars.empty()) + if ( (IsHIP || (IsCUDA && !RelocatableDeviceCode) ) + && EmittedKernels.empty() && DeviceVars.empty()) return nullptr; // void __{cuda|hip}_register_globals(void* handle); Modified: cfe/trunk/test/CodeGenCUDA/device-stub.cu URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCUDA/device-stub.cu?rev=357526&r1=357525&r2=357526&view=diff == --- cfe/trunk/test/CodeGenCUDA/device-stub.cu (original) +++ cfe/trunk/test/CodeGenCUDA/device-stub.cu Tue Apr 2 13:49:41 2019 @@ -227,20 +227,14 @@ void hostfunc(void) { kernelfunc<<<1, 1> // There should be no __[[PREFIX]]_register_globals if we have no // device-side globals, but we still need to register GPU binary. // Skip GPU binary string first. -// CUDANOGLOBALS: @{{.*}} = private constant{{.*}} +// CUDANOGLOBALS-NOT: @{{.*}} = private constant{{.*}} // HIPNOGLOBALS-NOT: @{{.*}} = internal constant{{.*}} // NOGLOBALS-NOT: define internal void @__{{.*}}_register_globals -// CUDANOGLOBALS: define internal void @__[[PREFIX:cuda|hip]]_module_ctor -// CUDANOGLOBALS: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper +// NOGLOBALS-NOT: define internal void @__[[PREFIX:cuda|hip]]_module_ctor +// NOGLOBALS-NOT: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper // NOGLOBALS-NOT: call void @__[[PREFIX]]_register_globals -// CUDANOGLOBALS: define internal void @__[[PREFIX]]_module_dtor -// CUDANOGLOBALS: call void @__[[PREFIX]]UnregisterFatBinary - -// There should be no fat binary functions when no device-code is found for HIP. -// HIPNOGLOBALS-NOT: define internal void @__[[PREFIX:cuda|hip]]_module_ctor -// HIPNOGLOBALS-NOT: call{{.*}}[[PREFIX]]RegisterFatBinary{{.*}}__[[PREFIX]]_fatbin_wrapper -// HIPNOGLOBALS-NOT: define internal void @__[[PREFIX]]_module_dtor -// HIPNOGLOBALS-NOT: call void @__[[PREFIX]]UnregisterFatBinary +// NOGLOBALS-NOT: define internal void @__[[PREFIX]]_module_dtor +// NOGLOBALS-NOT: call void @__[[PREFIX]]UnregisterFatBinary // There should be no constructors/destructors if we have no GPU binary. // NOGPUBIN-NOT: define internal void @__[[PREFIX]]_register_globals ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r357532 - [HIP-Clang] Fat binary should not be produced for non GPU code
Author: aaronenyeshi Date: Tue Apr 2 14:54:41 2019 New Revision: 357532 URL: http://llvm.org/viewvc/llvm-project?rev=357532&view=rev Log: [HIP-Clang] Fat binary should not be produced for non GPU code clang-format the changes to CUDA and HIP fat binary. Reviewers: yaxunl, tra Differential Revision: https://reviews.llvm.org/D60141 Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp Modified: cfe/trunk/lib/CodeGen/CGCUDANV.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCUDANV.cpp?rev=357532&r1=357531&r2=357532&view=diff == --- cfe/trunk/lib/CodeGen/CGCUDANV.cpp (original) +++ cfe/trunk/lib/CodeGen/CGCUDANV.cpp Tue Apr 2 14:54:41 2019 @@ -473,8 +473,8 @@ llvm::Function *CGNVCUDARuntime::makeMod StringRef CudaGpuBinaryFileName = CGM.getCodeGenOpts().CudaGpuBinaryFileName; if (CudaGpuBinaryFileName.empty() && !IsHIP) return nullptr; - if ( (IsHIP || (IsCUDA && !RelocatableDeviceCode) ) - && EmittedKernels.empty() && DeviceVars.empty()) + if ((IsHIP || (IsCUDA && !RelocatableDeviceCode)) && EmittedKernels.empty() && + DeviceVars.empty()) return nullptr; // void __{cuda|hip}_register_globals(void* handle); ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r353880 - [HIP] Handle compile -m options and propagate into LLC
Author: aaronenyeshi Date: Tue Feb 12 13:21:06 2019 New Revision: 353880 URL: http://llvm.org/viewvc/llvm-project?rev=353880&view=rev Log: [HIP] Handle compile -m options and propagate into LLC Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Also add lit tests to verify features are properly passed. Differential Revision: https://reviews.llvm.org/D57977 Reviewers: yaxunl, kzhuravl Added: cfe/trunk/test/Driver/hip-toolchain-features.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=353880&r1=353879&r2=353880&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Tue Feb 12 13:21:06 2019 @@ -159,8 +159,25 @@ const char *AMDGCN::Linker::constructLlc llvm::StringRef OutputFilePrefix, const char *InputFileName) const { // Construct llc command. ArgStringList LlcArgs{InputFileName, "-mtriple=amdgcn-amd-amdhsa", -"-filetype=obj", "-mattr=-code-object-v3", -Args.MakeArgString("-mcpu=" + SubArchName), "-o"}; +"-filetype=obj", +Args.MakeArgString("-mcpu=" + SubArchName)}; + + // Extract all the -m options + std::vector Features; + handleTargetFeaturesGroup( +Args, Features, options::OPT_m_amdgpu_Features_Group); + + // Add features to mattr such as code-object-v3 and xnack + std::string MAttrString = "-mattr="; + for(auto OneFeature : Features) { +MAttrString.append(Args.MakeArgString(OneFeature)); +if (OneFeature != Features.back()) + MAttrString.append(","); + } + LlcArgs.push_back(Args.MakeArgString(MAttrString)); + + // Add output filename + LlcArgs.push_back("-o"); std::string LlcOutputFileName = C.getDriver().GetTemporaryPath(OutputFilePrefix, "o"); const char *LlcOutputFile = Added: cfe/trunk/test/Driver/hip-toolchain-features.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-toolchain-features.hip?rev=353880&view=auto == --- cfe/trunk/test/Driver/hip-toolchain-features.hip (added) +++ cfe/trunk/test/Driver/hip-toolchain-features.hip Tue Feb 12 13:21:06 2019 @@ -0,0 +1,49 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mcode-object-v3 2>&1 | FileCheck %s -check-prefix=COV3 +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-code-object-v3 2>&1 | FileCheck %s -check-prefix=NOCOV3 + +// COV3: {{.*}}clang{{.*}}"-target-feature" "+code-object-v3" +// NOCOV3: {{.*}}clang{{.*}}"-target-feature" "-code-object-v3" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mxnack 2>&1 | FileCheck %s -check-prefix=XNACK +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-xnack 2>&1 | FileCheck %s -check-prefix=NOXNACK + +// XNACK: {{.*}}clang{{.*}}"-target-feature" "+xnack" +// NOXNACK: {{.*}}clang{{.*}}"-target-feature" "-xnack" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -msram-ecc 2>&1 | FileCheck %s -check-prefix=SRAM +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-sram-ecc 2>&1 | FileCheck %s -check-prefix=NOSRAM + +// SRAM: {{.*}}clang{{.*}}"-target-feature" "+sram-ecc" +// NOSRAM: {{.*}}clang{{.*}}"-target-feature" "-sram-ecc" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mcode-object-v3 -mxnack -msram-ecc \ +// RUN: 2>&1 | FileCheck %s -check-prefix=ALL3 +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-code-object-v3 -mno-xnack -mno-sram-ecc \ +// RUN: 2>&1 | FileCheck %s -check-prefix=NOALL3 + +// ALL3: {{.*}}clang{{.*}}"-target-feature" "+code-object-v3" "-target-feature" "+xnack" "-target-feature" "+sram-ecc" +// NOALL3: {{.*}}clang{{.*}}"-target-feature" "-code-object-v3" "-target-feature" "-xnack" "-target-feature" "-sram-ecc" + ___ cfe-commits mailing list cfe-commits@li
r353885 - [HIP] Fix hip-toolchain-rdc tests
Author: aaronenyeshi Date: Tue Feb 12 14:01:19 2019 New Revision: 353885 URL: http://llvm.org/viewvc/llvm-project?rev=353885&view=rev Log: [HIP] Fix hip-toolchain-rdc tests Since we removed changed the way HIP Toolchain will propagate -m options into LLC, we need to remove from these older tests. This is related to rC353880. Differential Revision: https://reviews.llvm.org/D57977 Modified: cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip cfe/trunk/test/Driver/hip-toolchain-rdc.hip Modified: cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip?rev=353885&r1=353884&r2=353885&view=diff == --- cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip (original) +++ cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip Tue Feb 12 14:01:19 2019 @@ -34,7 +34,6 @@ // CHECK: [[LLC: ".*llc"]] [[OPT_BC_DEV_A_803]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx803" "-o" [[OBJ_DEV_A_803:".*-gfx803-.*o"]] // CHECK: [[LLD: ".*lld"]] "-flavor" "gnu" "--no-undefined" "-shared" @@ -62,7 +61,6 @@ // CHECK: [[LLC: ".*llc"]] [[OPT_BC_DEV_A_900]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx900" "-o" [[OBJ_DEV_A_900:".*-gfx900-.*o"]] // CHECK: [[LLD: ".*lld"]] "-flavor" "gnu" "--no-undefined" "-shared" @@ -105,7 +103,6 @@ // CHECK: [[LLC: ".*llc"]] [[OPT_BC_DEV_B_803]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx803" "-o" [[OBJ_DEV_B_803:".*-gfx803-.*o"]] // CHECK: [[LLD: ".*lld"]] "-flavor" "gnu" "--no-undefined" "-shared" @@ -133,7 +130,6 @@ // CHECK: [[LLC: ".*llc"]] [[OPT_BC_DEV_B_900]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx900" "-o" [[OBJ_DEV_B_900:".*-gfx900-.*o"]] // CHECK: [[LLD: ".*lld"]] "-flavor" "gnu" "--no-undefined" "-shared" Modified: cfe/trunk/test/Driver/hip-toolchain-rdc.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-toolchain-rdc.hip?rev=353885&r1=353884&r2=353885&view=diff == --- cfe/trunk/test/Driver/hip-toolchain-rdc.hip (original) +++ cfe/trunk/test/Driver/hip-toolchain-rdc.hip Tue Feb 12 14:01:19 2019 @@ -38,7 +38,6 @@ // CHECK: [[LLC: ".*llc"]] [[OPT_BC_DEV1]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx803" "-o" [[OBJ_DEV1:".*-gfx803-.*o"]] // CHECK: [[LLD: ".*lld"]] "-flavor" "gnu" "--no-undefined" "-shared" @@ -66,7 +65,6 @@ // CHECK: [[LLC]] [[OPT_BC_DEV2]] "-mtriple=amdgcn-amd-amdhsa" // CHECK-SAME: "-filetype=obj" -// CHECK-SAME: "-mattr=-code-object-v3" // CHECK-SAME: "-mcpu=gfx900" "-o" [[OBJ_DEV2:".*-gfx900-.*o"]] // CHECK: [[LLD]] "-flavor" "gnu" "--no-undefined" "-shared" ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r353952 - [HIP] Handle compile -m options and propagate into LLC
Author: aaronenyeshi Date: Wed Feb 13 08:12:16 2019 New Revision: 353952 URL: http://llvm.org/viewvc/llvm-project?rev=353952&view=rev Log: [HIP] Handle compile -m options and propagate into LLC Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Fix an issue where -mattr was pushed even when it was empty. Also add lit tests to verify features are properly passed. Differential Revision: https://reviews.llvm.org/D57977 Reviewers: yaxunl, kzhuravl Added: cfe/trunk/test/Driver/hip-toolchain-features.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=353952&r1=353951&r2=353952&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Wed Feb 13 08:12:16 2019 @@ -159,8 +159,26 @@ const char *AMDGCN::Linker::constructLlc llvm::StringRef OutputFilePrefix, const char *InputFileName) const { // Construct llc command. ArgStringList LlcArgs{InputFileName, "-mtriple=amdgcn-amd-amdhsa", -"-filetype=obj", "-mattr=-code-object-v3", -Args.MakeArgString("-mcpu=" + SubArchName), "-o"}; +"-filetype=obj", +Args.MakeArgString("-mcpu=" + SubArchName)}; + + // Extract all the -m options + std::vector Features; + handleTargetFeaturesGroup( +Args, Features, options::OPT_m_amdgpu_Features_Group); + + // Add features to mattr such as code-object-v3 and xnack + std::string MAttrString = "-mattr="; + for(auto OneFeature : Features) { +MAttrString.append(Args.MakeArgString(OneFeature)); +if (OneFeature != Features.back()) + MAttrString.append(","); + } + if(!Features.empty()) +LlcArgs.push_back(Args.MakeArgString(MAttrString)); + + // Add output filename + LlcArgs.push_back("-o"); std::string LlcOutputFileName = C.getDriver().GetTemporaryPath(OutputFilePrefix, "o"); const char *LlcOutputFile = Added: cfe/trunk/test/Driver/hip-toolchain-features.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-toolchain-features.hip?rev=353952&view=auto == --- cfe/trunk/test/Driver/hip-toolchain-features.hip (added) +++ cfe/trunk/test/Driver/hip-toolchain-features.hip Wed Feb 13 08:12:16 2019 @@ -0,0 +1,48 @@ +// REQUIRES: clang-driver +// REQUIRES: x86-registered-target +// REQUIRES: amdgpu-registered-target + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mcode-object-v3 2>&1 | FileCheck %s -check-prefix=COV3 +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-code-object-v3 2>&1 | FileCheck %s -check-prefix=NOCOV3 + +// COV3: {{.*}}clang{{.*}}"-target-feature" "+code-object-v3" +// NOCOV3: {{.*}}clang{{.*}}"-target-feature" "-code-object-v3" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mxnack 2>&1 | FileCheck %s -check-prefix=XNACK +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-xnack 2>&1 | FileCheck %s -check-prefix=NOXNACK + +// XNACK: {{.*}}clang{{.*}}"-target-feature" "+xnack" +// NOXNACK: {{.*}}clang{{.*}}"-target-feature" "-xnack" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -msram-ecc 2>&1 | FileCheck %s -check-prefix=SRAM +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-sram-ecc 2>&1 | FileCheck %s -check-prefix=NOSRAM + +// SRAM: {{.*}}clang{{.*}}"-target-feature" "+sram-ecc" +// NOSRAM: {{.*}}clang{{.*}}"-target-feature" "-sram-ecc" + + +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mcode-object-v3 -mxnack -msram-ecc \ +// RUN: 2>&1 | FileCheck %s -check-prefix=ALL3 +// RUN: %clang -### -c -target x86_64-linux-gnu -fgpu-rdc \ +// RUN: -x hip --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %s \ +// RUN: -mno-code-object-v3 -mno-xnack -mno-sram-ecc \ +// RUN: 2>&1 | FileCheck %s -check-prefix=NOALL3 + +// ALL3: {{.*}}clang{{.*}}"-target-feature" "+code-object-v3" "-target-feature" "+xnack" "-target-feature" "+sram-ecc" +// NOALL3: {{.*}}clang{{.*}}"-target-feature" "-code-object-v3" "-target-feature" "-xnack" "-target-feature" "-sram-ecc" _
r350425 - [HIP][DRIVER][OFFLOAD] Do not unbundle unsupported file types
Author: aaronenyeshi Date: Fri Jan 4 11:05:41 2019 New Revision: 350425 URL: http://llvm.org/viewvc/llvm-project?rev=350425&view=rev Log: [HIP][DRIVER][OFFLOAD] Do not unbundle unsupported file types The offload bundler action should not unbundle the input file types that does not match the action type. This fixes an issue where .so files are unbundled when the action type is object files. Added: cfe/trunk/test/Driver/hip-link-shared-library.hip Modified: cfe/trunk/lib/Driver/Driver.cpp Modified: cfe/trunk/lib/Driver/Driver.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=350425&r1=350424&r2=350425&view=diff == --- cfe/trunk/lib/Driver/Driver.cpp (original) +++ cfe/trunk/lib/Driver/Driver.cpp Fri Jan 4 11:05:41 2019 @@ -2323,6 +2323,18 @@ class OffloadingActionBuilder final { // If this is an unbundling action use it as is for each CUDA toolchain. if (auto *UA = dyn_cast(HostAction)) { CudaDeviceActions.clear(); +auto *IA = cast(UA->getInputs().back()); +std::string FileName = IA->getInputArg().getAsString(Args); +// Check if the type of the file is the same as the action. Do not +// unbundle it if it is not. Do not unbundle .so files, for example, +// which are not object files. +if (IA->getType() == types::TY_Object && +(!llvm::sys::path::has_extension(FileName) || + types::lookupTypeForExtension( + llvm::sys::path::extension(FileName).drop_front()) != + types::TY_Object)) + return ABRT_Inactive; + for (auto Arch : GpuArchList) { CudaDeviceActions.push_back(UA); UA->registerDependentActionInfo(ToolChains[0], CudaArchToString(Arch), Added: cfe/trunk/test/Driver/hip-link-shared-library.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-link-shared-library.hip?rev=350425&view=auto == --- cfe/trunk/test/Driver/hip-link-shared-library.hip (added) +++ cfe/trunk/test/Driver/hip-link-shared-library.hip Fri Jan 4 11:05:41 2019 @@ -0,0 +1,11 @@ +// RUN: touch %t.o +// RUN: %clang --hip-link -ccc-print-bindings -target x86_64-linux-gnu \ +// RUN: --cuda-gpu-arch=gfx803 --cuda-gpu-arch=gfx900 %t.o %S/Inputs/in.so \ +// RUN: 2>&1 | FileCheck %s + +// CHECK: # "amdgcn-amd-amdhsa" - "offload bundler", inputs: ["[[IN:.*o]]"], outputs: ["[[OBJ1:.*o]]", "[[OBJ2:.*o]]", "[[OBJ3:.*o]]"] +// CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[OBJ2]]"], output: "[[IMG2:.*out]]" +// CHECK-NOT: offload bundler +// CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[OBJ3]]"], output: "[[IMG3:.*out]]" +// CHECK-NOT: offload bundler +// CHECK: # "x86_64-unknown-linux-gnu" - "GNU::Linker", inputs: ["[[OBJ1]]", "{{.*}}/Inputs/in.so", "[[IMG2]]", "[[IMG3]]"], output: "a.out" ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r350426 - [HIP][DRIVER][OFFLOAD] Do not unbundle unsupported file types
Author: aaronenyeshi Date: Fri Jan 4 11:09:20 2019 New Revision: 350426 URL: http://llvm.org/viewvc/llvm-project?rev=350426&view=rev Log: [HIP][DRIVER][OFFLOAD] Do not unbundle unsupported file types The offload bundler action should not unbundle the input file types that does not match the action type. This fixes an issue where .so files are unbundled when the action type is object files. Reviewers: yaxunl Differential Revision: https://reviews.llvm.org/D56321 Modified: cfe/trunk/test/Driver/hip-link-shared-library.hip Modified: cfe/trunk/test/Driver/hip-link-shared-library.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-link-shared-library.hip?rev=350426&r1=350425&r2=350426&view=diff == --- cfe/trunk/test/Driver/hip-link-shared-library.hip (original) +++ cfe/trunk/test/Driver/hip-link-shared-library.hip Fri Jan 4 11:09:20 2019 @@ -9,3 +9,4 @@ // CHECK: # "amdgcn-amd-amdhsa" - "AMDGCN::Linker", inputs: ["[[OBJ3]]"], output: "[[IMG3:.*out]]" // CHECK-NOT: offload bundler // CHECK: # "x86_64-unknown-linux-gnu" - "GNU::Linker", inputs: ["[[OBJ1]]", "{{.*}}/Inputs/in.so", "[[IMG2]]", "[[IMG3]]"], output: "a.out" + ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r335630 - [Test] Initial test commit access
Author: aaronenyeshi Date: Tue Jun 26 10:12:29 2018 New Revision: 335630 URL: http://llvm.org/viewvc/llvm-project?rev=335630&view=rev Log: [Test] Initial test commit access Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=335630&r1=335629&r2=335630&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Tue Jun 26 10:12:29 2018 @@ -254,7 +254,7 @@ HIPToolChain::TranslateArgs(const llvm:: for (Arg *A : Args) { if (A->getOption().matches(options::OPT_Xarch__)) { - // Skip this argument unless the architecture matches BoundArch + // Skip this argument unless the architecture matches BoundArch. if (BoundArch.empty() || A->getValue(0) != BoundArch) continue; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r335634 - [HIP] Remove hip/hc.amdgcn.bc from HIP Toolchains
Author: aaronenyeshi Date: Tue Jun 26 10:40:36 2018 New Revision: 335634 URL: http://llvm.org/viewvc/llvm-project?rev=335634&view=rev Log: [HIP] Remove hip/hc.amdgcn.bc from HIP Toolchains Summary: The hc.amdgcn.bc and hip.amdgcn.bc are removed in VDI build and no longer needed. Reviewers: yaxunl Reviewed By: yaxunl Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D48455 Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=335634&r1=335633&r2=335634&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Tue Jun 26 10:40:36 2018 @@ -75,12 +75,12 @@ const char *AMDGCN::Linker::constructLLV std::string ISAVerBC = "oclc_isa_version_" + SubArchName.drop_front(3).str() + ".amdgcn.bc"; -BCLibs.append({"hip.amdgcn.bc", "hc.amdgcn.bc", "opencl.amdgcn.bc", +BCLibs.append({"opencl.amdgcn.bc", "ockl.amdgcn.bc", "irif.amdgcn.bc", "ocml.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc", "oclc_daz_opt_off.amdgcn.bc", "oclc_correctly_rounded_sqrt_on.amdgcn.bc", - "oclc_unsafe_math_off.amdgcn.bc", "hc.amdgcn.bc", ISAVerBC}); + "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC}); } for (auto Lib : BCLibs) addBCLib(C, Args, CmdArgs, LibraryPaths, Lib); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r335765 - [HIP] Support flush denormals bitcode
Author: aaronenyeshi Date: Wed Jun 27 11:58:55 2018 New Revision: 335765 URL: http://llvm.org/viewvc/llvm-project?rev=335765&view=rev Log: [HIP] Support flush denormals bitcode Summary: Use oclc_daz_opt_on.amdgcn.bc bitcode when option fcuda-flush-denormal-to-zero is enabled, otherwise use oclc_daz_opt_off.amdgcn.bc bitcode. Added lit tests to verify that the correct bitcode is linked when -fcuda-flush-denormal-to-zero option is enabled or disabled. Reviewers: yaxunl, scchan, b-sumner Reviewed By: yaxunl, scchan, b-sumner Subscribers: cfe-commits, yaxunl Differential Revision: https://reviews.llvm.org/D48493 Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/ cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/ockl.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_correctly_rounded_sqrt_on.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_off.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_on.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_finite_only_off.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_version_803.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_version_900.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_unsafe_math_off.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/ocml.amdgcn.bc cfe/trunk/test/Driver/Inputs/hip_dev_lib/opencl.amdgcn.bc cfe/trunk/test/Driver/hip-device-libs.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=335765&r1=335764&r2=335765&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Wed Jun 27 11:58:55 2018 @@ -75,10 +75,16 @@ const char *AMDGCN::Linker::constructLLV std::string ISAVerBC = "oclc_isa_version_" + SubArchName.drop_front(3).str() + ".amdgcn.bc"; +llvm::StringRef FlushDenormalControlBC; +if (Args.hasArg(options::OPT_fcuda_flush_denormals_to_zero)) + FlushDenormalControlBC = "oclc_daz_opt_on.amdgcn.bc"; +else + FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc"; + BCLibs.append({"opencl.amdgcn.bc", "ockl.amdgcn.bc", "irif.amdgcn.bc", "ocml.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc", - "oclc_daz_opt_off.amdgcn.bc", + FlushDenormalControlBC, "oclc_correctly_rounded_sqrt_on.amdgcn.bc", "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC}); } Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/ockl.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/ockl.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_correctly_rounded_sqrt_on.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_correctly_rounded_sqrt_on.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_off.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_off.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_on.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_on.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_finite_only_off.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_finite_only_off.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_version_803.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_version_803.amdgcn.bc?rev=335765&view=auto == (empty) Added: cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_version_900.amdgcn.bc URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/Inputs/hip_dev_lib/oclc_isa_v
r335774 - [HIP] Fix ordering of device-libs linking
Author: aaronenyeshi Date: Wed Jun 27 12:51:42 2018 New Revision: 335774 URL: http://llvm.org/viewvc/llvm-project?rev=335774&view=rev Log: [HIP] Fix ordering of device-libs linking Summary: HIP should link the bitcodes with caller functions before callee functions. Also added lit test to check the ordering of the linked bitcodes is matches. Reviewers: yaxunl, b-sumner Reviewed By: yaxunl, b-sumner Subscribers: cfe-commits, yaxunl, b-sumner, scchan Differential Revision: https://reviews.llvm.org/D48667 Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp cfe/trunk/test/Driver/hip-device-libs.hip Modified: cfe/trunk/lib/Driver/ToolChains/HIP.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/HIP.cpp?rev=335774&r1=335773&r2=335774&view=diff == --- cfe/trunk/lib/Driver/ToolChains/HIP.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/HIP.cpp Wed Jun 27 12:51:42 2018 @@ -82,7 +82,7 @@ const char *AMDGCN::Linker::constructLLV FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc"; BCLibs.append({"opencl.amdgcn.bc", - "ockl.amdgcn.bc", "irif.amdgcn.bc", "ocml.amdgcn.bc", + "ocml.amdgcn.bc", "ockl.amdgcn.bc", "irif.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc", FlushDenormalControlBC, "oclc_correctly_rounded_sqrt_on.amdgcn.bc", Modified: cfe/trunk/test/Driver/hip-device-libs.hip URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hip-device-libs.hip?rev=335774&r1=335773&r2=335774&view=diff == --- cfe/trunk/test/Driver/hip-device-libs.hip (original) +++ cfe/trunk/test/Driver/hip-device-libs.hip Wed Jun 27 12:51:42 2018 @@ -21,6 +21,7 @@ // COM: [[LLVM_LINK:"*.llvm-link"]] +// COM-SAME: {{.*}} "{{.*}}ocml.amdgcn.bc" "{{.*}}ockl.amdgcn.bc" "{{.*}}irif.amdgcn.bc" // FLUSHD-SAME: {{.*}} "{{.*}}oclc_daz_opt_on.amdgcn.bc" // NOFLUSHD-SAME: {{.*}} "{{.*}}oclc_daz_opt_off.amdgcn.bc" // COM-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}" ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits