This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG549542b494f4: [HLSL] emit-obj when set output. (authored by python3kgae).
Changed prior to commit: https://reviews.llvm.org/D130858?vs=448890&id=450447#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D130858/new/ https://reviews.llvm.org/D130858 Files: clang/lib/Driver/Driver.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/lib/Driver/ToolChains/HLSL.cpp clang/test/Driver/dxc_Fo.hlsl Index: clang/test/Driver/dxc_Fo.hlsl =================================================================== --- /dev/null +++ clang/test/Driver/dxc_Fo.hlsl @@ -0,0 +1,15 @@ +// RUN: %clang_dxc -T lib_6_7 foo.hlsl -### %s 2>&1 | FileCheck %s --check-prefix=DEFAULT +// RUN: %clang_dxc -fcgl -T lib_6_7 foo.hlsl -### %s 2>&1 | FileCheck %s --check-prefix=FCGL +// RUN: %clang_dxc -T lib_6_7 foo.hlsl -Fo foo.dxc -### %s 2>&1 | FileCheck %s --check-prefix=EMITOBJ + + +// Make sure default use "-" as output and not emit obj. +// DEFAULT-NOT:"-emit-obj" +// DEFAULT:"-o" "-" + +// Make sure -fcgl without -Fo use "-" as output. +// FCGL:"-o" "-" + + +// Make sure emit-obj when set -Fo. +// EMITOBJ:"-emit-obj" Index: clang/lib/Driver/ToolChains/HLSL.cpp =================================================================== --- clang/lib/Driver/ToolChains/HLSL.cpp +++ clang/lib/Driver/ToolChains/HLSL.cpp @@ -175,6 +175,15 @@ } DAL->append(A); } + + if (DAL->hasArg(options::OPT_o)) { + // When run the whole pipeline. + if (!DAL->hasArg(options::OPT_emit_llvm)) + // Emit obj if write to file. + DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_emit_obj)); + } else + DAL->AddSeparateArg(nullptr, Opts.getOption(options::OPT_o), "-"); + // Add default validator version if not set. // TODO: remove this once read validator version from validator. if (!DAL->hasArg(options::OPT_dxil_validator_version)) { Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -3513,6 +3513,7 @@ options::OPT_I, options::OPT_S, options::OPT_emit_llvm, + options::OPT_emit_obj, options::OPT_disable_llvm_passes, options::OPT_fnative_half_type, options::OPT_hlsl_entrypoint}; Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -5664,6 +5664,9 @@ return "-"; } + if (IsDXCMode() && !C.getArgs().hasArg(options::OPT_o)) + return "-"; + // Is this the assembly listing for /FA? if (JA.getType() == types::TY_PP_Asm && (C.getArgs().hasArg(options::OPT__SLASH_FA) ||
Index: clang/test/Driver/dxc_Fo.hlsl =================================================================== --- /dev/null +++ clang/test/Driver/dxc_Fo.hlsl @@ -0,0 +1,15 @@ +// RUN: %clang_dxc -T lib_6_7 foo.hlsl -### %s 2>&1 | FileCheck %s --check-prefix=DEFAULT +// RUN: %clang_dxc -fcgl -T lib_6_7 foo.hlsl -### %s 2>&1 | FileCheck %s --check-prefix=FCGL +// RUN: %clang_dxc -T lib_6_7 foo.hlsl -Fo foo.dxc -### %s 2>&1 | FileCheck %s --check-prefix=EMITOBJ + + +// Make sure default use "-" as output and not emit obj. +// DEFAULT-NOT:"-emit-obj" +// DEFAULT:"-o" "-" + +// Make sure -fcgl without -Fo use "-" as output. +// FCGL:"-o" "-" + + +// Make sure emit-obj when set -Fo. +// EMITOBJ:"-emit-obj" Index: clang/lib/Driver/ToolChains/HLSL.cpp =================================================================== --- clang/lib/Driver/ToolChains/HLSL.cpp +++ clang/lib/Driver/ToolChains/HLSL.cpp @@ -175,6 +175,15 @@ } DAL->append(A); } + + if (DAL->hasArg(options::OPT_o)) { + // When run the whole pipeline. + if (!DAL->hasArg(options::OPT_emit_llvm)) + // Emit obj if write to file. + DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_emit_obj)); + } else + DAL->AddSeparateArg(nullptr, Opts.getOption(options::OPT_o), "-"); + // Add default validator version if not set. // TODO: remove this once read validator version from validator. if (!DAL->hasArg(options::OPT_dxil_validator_version)) { Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -3513,6 +3513,7 @@ options::OPT_I, options::OPT_S, options::OPT_emit_llvm, + options::OPT_emit_obj, options::OPT_disable_llvm_passes, options::OPT_fnative_half_type, options::OPT_hlsl_entrypoint}; Index: clang/lib/Driver/Driver.cpp =================================================================== --- clang/lib/Driver/Driver.cpp +++ clang/lib/Driver/Driver.cpp @@ -5664,6 +5664,9 @@ return "-"; } + if (IsDXCMode() && !C.getArgs().hasArg(options::OPT_o)) + return "-"; + // Is this the assembly listing for /FA? if (JA.getType() == types::TY_PP_Asm && (C.getArgs().hasArg(options::OPT__SLASH_FA) ||
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits