Index: clang/lib/Driver/ToolChains/AMDGPU.cpp =================================================================== --- clang/lib/Driver/ToolChains/AMDGPU.cpp +++ clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -525,19 +525,6 @@ CC1Args.push_back("hidden"); CC1Args.push_back("-fapply-global-visibility-to-externs"); } - - if (DriverArgs.hasArg(options::OPT_mcode_object_v3_legacy)) { - getDriver().Diag(diag::warn_drv_deprecated_arg) << "-mcode-object-v3" << - "-mllvm --amdhsa-code-object-version=3"; - CC1Args.push_back("-mllvm"); - CC1Args.push_back("--amdhsa-code-object-version=3"); - } - if (DriverArgs.hasArg(options::OPT_mno_code_object_v3_legacy)) { - getDriver().Diag(diag::warn_drv_deprecated_arg) << "-mno-code-object-v3" << - "-mllvm --amdhsa-code-object-version=2"; - CC1Args.push_back("-mllvm"); - CC1Args.push_back("--amdhsa-code-object-version=2"); - } } StringRef Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6122,6 +6122,19 @@ } } + if (Args.hasArg(options::OPT_mcode_object_v3_legacy)) { + D.Diag(diag::warn_drv_deprecated_arg) << "-mcode-object-v3" << + "-mllvm --amdhsa-code-object-version=3"; + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("--amdhsa-code-object-version=3"); + } + if (Args.hasArg(options::OPT_mno_code_object_v3_legacy)) { + D.Diag(diag::warn_drv_deprecated_arg) << "-mno-code-object-v3" << + "-mllvm --amdhsa-code-object-version=2"; + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("--amdhsa-code-object-version=2"); + } + // For all the host OpenMP offloading compile jobs we need to pass the targets // information using -fopenmp-targets= option. if (JA.isHostOffloading(Action::OFK_OpenMP)) { @@ -7085,6 +7098,19 @@ CmdArgs.push_back(SplitDebugName(JA, Args, Input, Output)); } + if (Args.hasArg(options::OPT_mcode_object_v3_legacy)) { + D.Diag(diag::warn_drv_deprecated_arg) << "-mcode-object-v3" << + "-mllvm --amdhsa-code-object-version=3"; + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("--amdhsa-code-object-version=3"); + } + if (Args.hasArg(options::OPT_mno_code_object_v3_legacy)) { + D.Diag(diag::warn_drv_deprecated_arg) << "-mno-code-object-v3" << + "-mllvm --amdhsa-code-object-version=2"; + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("--amdhsa-code-object-version=2"); + } + assert(Input.isFilename() && "Invalid input."); CmdArgs.push_back(Input.getFilename()); Index: clang/test/Driver/amdgpu-features-as.s =================================================================== --- /dev/null +++ clang/test/Driver/amdgpu-features-as.s @@ -0,0 +1,7 @@ +// RUN: %clang -### -target amdgcn-amd-amdhsa -mcpu=gfx900 -mcode-object-v3 %s 2>&1 | FileCheck --check-prefix=CODE-OBJECT-V3 %s +// CODE-OBJECT-V3: warning: argument '-mcode-object-v3' is deprecated, use '-mllvm --amdhsa-code-object-version=3' instead [-Wdeprecated] +// CODE-OBJECT-V3: "-mllvm" "--amdhsa-code-object-version=3" + +// RUN: %clang -### -target amdgcn-amd-amdhsa amdgcn -mcpu=gfx900 -mno-code-object-v3 %s 2>&1 | FileCheck --check-prefix=NO-CODE-OBJECT-V3 %s +// NO-CODE-OBJECT-V3: warning: argument '-mno-code-object-v3' is deprecated, use '-mllvm --amdhsa-code-object-version=2' instead [-Wdeprecated] +// NO-CODE-OBJECT-V3: "-mllvm" "--amdhsa-code-object-version=2"