[PATCH] D133958: [HLSL] Pass flags to cc1 based on language
Chris Bieneman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 15 11:02:37 PDT 2022
beanz updated this revision to Diff 460464.
beanz added a comment.
Fixing test typo, thanks @python3kgae!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133958/new/
https://reviews.llvm.org/D133958
Files:
clang/include/clang/Driver/Types.h
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/Types.cpp
clang/test/Driver/hlsl_no_stdinc.hlsl
Index: clang/test/Driver/hlsl_no_stdinc.hlsl
===================================================================
--- clang/test/Driver/hlsl_no_stdinc.hlsl
+++ clang/test/Driver/hlsl_no_stdinc.hlsl
@@ -1,5 +1,7 @@
// RUN: %clang_dxc -Tlib_6_7 -fcgl -Fo - %s -### 2>&1 | FileCheck %s --check-prefix=STDINC
+// RUN: %clang -target dxil-pc-shadermodel6.3-library -o - %s -### 2>&1 | FileCheck %s --check-prefix=STDINC
// RUN: %clang_dxc -Tlib_6_7 -hlsl-no-stdinc -fcgl -Fo - %s -### 2>&1 | FileCheck %s --check-prefix=NOSTDINC
+// RUN: %clang -target dxil-pc-shadermodel6.3-library -nostdinc -o - %s -### 2>&1 | FileCheck %s --check-prefix=NOSTDINC
// RUN: %clang -cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -ast-dump -o - %s -verify
Index: clang/lib/Driver/Types.cpp
===================================================================
--- clang/lib/Driver/Types.cpp
+++ clang/lib/Driver/Types.cpp
@@ -286,6 +286,8 @@
}
}
+bool types::isHLSL(ID Id) { return Id == TY_HLSL; }
+
bool types::isSrcFile(ID Id) {
return Id != TY_Object && getPreprocessedType(Id) != TY_INVALID;
}
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -3526,12 +3526,14 @@
options::OPT_disable_llvm_passes,
options::OPT_fnative_half_type,
options::OPT_hlsl_entrypoint};
-
+ if (!types::isHLSL(InputType))
+ return;
for (const auto &Arg : ForwardedArguments)
if (const auto *A = Args.getLastArg(Arg))
A->renderAsInput(Args, CmdArgs);
// Add the default headers if dxc_no_stdinc is not set.
- if (!Args.hasArg(options::OPT_dxc_no_stdinc))
+ if (!Args.hasArg(options::OPT_dxc_no_stdinc) &&
+ !Args.hasArg(options::OPT_nostdinc))
CmdArgs.push_back("-finclude-default-header");
}
@@ -6312,8 +6314,7 @@
RenderOpenCLOptions(Args, CmdArgs, InputType);
// Forward hlsl options to -cc1
- if (C.getDriver().IsDXCMode())
- RenderHLSLOptions(Args, CmdArgs, InputType);
+ RenderHLSLOptions(Args, CmdArgs, InputType);
if (IsHIP) {
if (Args.hasFlag(options::OPT_fhip_new_launch_api,
Index: clang/include/clang/Driver/Types.h
===================================================================
--- clang/include/clang/Driver/Types.h
+++ clang/include/clang/Driver/Types.h
@@ -95,6 +95,9 @@
/// isOpenCL - Is this an "OpenCL" input.
bool isOpenCL(ID Id);
+ /// isHLSL - Is this an HLSL input.
+ bool isHLSL(ID Id);
+
/// isSrcFile - Is this a source file, i.e. something that still has to be
/// preprocessed. The logic behind this is the same that decides if the first
/// compilation phase is a preprocessing one.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133958.460464.patch
Type: text/x-patch
Size: 2850 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220915/38df7336/attachment-0001.bin>
More information about the cfe-commits
mailing list