mirror of
https://github.com/intel/llvm.git
synced 2026-02-08 00:50:03 +08:00
[HLSL] add -I option for dxc mode.
A new option -I is added for dxc mode. It is just alias of existing cc1 -I option. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D128462
This commit is contained in:
@@ -423,6 +423,8 @@ unsigned char getModes(const llvm::opt::Option &Opt) {
|
||||
if (!Opt.hasFlag(driver::options::NoDriverOption)) {
|
||||
if (Opt.hasFlag(driver::options::CLOption)) {
|
||||
Result |= DM_CL;
|
||||
} else if (Opt.hasFlag(driver::options::CLDXCOption)) {
|
||||
Result |= DM_CL;
|
||||
} else {
|
||||
Result |= DM_GCC;
|
||||
if (Opt.hasFlag(driver::options::CoreOption)) {
|
||||
|
||||
@@ -36,7 +36,8 @@ enum ClangFlags {
|
||||
FC1Option = (1 << 15),
|
||||
FlangOnlyOption = (1 << 16),
|
||||
DXCOption = (1 << 17),
|
||||
Ignored = (1 << 18),
|
||||
CLDXCOption = (1 << 18),
|
||||
Ignored = (1 << 19),
|
||||
};
|
||||
|
||||
enum ID {
|
||||
|
||||
@@ -53,6 +53,10 @@ def CC1AsOption : OptionFlag;
|
||||
// are made available when the driver is running in DXC compatibility mode.
|
||||
def DXCOption : OptionFlag;
|
||||
|
||||
// CLDXCOption - This is a cl.exe/dxc.exe compatibility option. Options with this flag
|
||||
// are made available when the driver is running in CL/DXC compatibility mode.
|
||||
def CLDXCOption : OptionFlag;
|
||||
|
||||
// NoDriverOption - This option should not be accepted by the driver.
|
||||
def NoDriverOption : OptionFlag;
|
||||
|
||||
@@ -6355,7 +6359,7 @@ def defsym : Separate<["-"], "defsym">,
|
||||
// clang-cl Options
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
def cl_Group : OptionGroup<"<clang-cl options>">, Flags<[CLOption]>,
|
||||
def cl_Group : OptionGroup<"<clang-cl options>">, Flags<[CLDXCOption]>,
|
||||
HelpText<"CL.EXE COMPATIBILITY OPTIONS">;
|
||||
|
||||
def cl_compile_Group : OptionGroup<"<clang-cl compile-only options>">,
|
||||
@@ -6385,6 +6389,9 @@ class CLIgnoredJoined<string name> : Option<["/", "-"], name, KIND_JOINED>,
|
||||
class CLJoinedOrSeparate<string name> : Option<["/", "-"], name,
|
||||
KIND_JOINED_OR_SEPARATE>, Group<cl_Group>, Flags<[CLOption, NoXarchOption]>;
|
||||
|
||||
class CLDXCJoinedOrSeparate<string name> : Option<["/", "-"], name,
|
||||
KIND_JOINED_OR_SEPARATE>, Group<cl_Group>, Flags<[CLDXCOption, NoXarchOption]>;
|
||||
|
||||
class CLCompileJoinedOrSeparate<string name> : Option<["/", "-"], name,
|
||||
KIND_JOINED_OR_SEPARATE>, Group<cl_compile_Group>,
|
||||
Flags<[CLOption, NoXarchOption]>;
|
||||
@@ -6462,7 +6469,7 @@ def _SLASH_help : CLFlag<"help">, Alias<help>,
|
||||
def _SLASH_HELP : CLFlag<"HELP">, Alias<help>;
|
||||
def _SLASH_hotpatch : CLFlag<"hotpatch">, Alias<fms_hotpatch>,
|
||||
HelpText<"Create hotpatchable image">;
|
||||
def _SLASH_I : CLJoinedOrSeparate<"I">,
|
||||
def _SLASH_I : CLDXCJoinedOrSeparate<"I">,
|
||||
HelpText<"Add directory to include search path">, MetaVarName<"<dir>">,
|
||||
Alias<I>;
|
||||
def _SLASH_J : CLFlag<"J">, HelpText<"Make char type unsigned">,
|
||||
|
||||
@@ -6262,6 +6262,7 @@ Driver::getIncludeExcludeOptionFlagMasks(bool IsClCompatMode) const {
|
||||
if (IsClCompatMode) {
|
||||
// Include CL and Core options.
|
||||
IncludedFlagsBitmask |= options::CLOption;
|
||||
IncludedFlagsBitmask |= options::CLDXCOption;
|
||||
IncludedFlagsBitmask |= options::CoreOption;
|
||||
} else {
|
||||
ExcludedFlagsBitmask |= options::CLOption;
|
||||
@@ -6269,10 +6270,14 @@ Driver::getIncludeExcludeOptionFlagMasks(bool IsClCompatMode) const {
|
||||
if (IsDXCMode()) {
|
||||
// Include DXC and Core options.
|
||||
IncludedFlagsBitmask |= options::DXCOption;
|
||||
IncludedFlagsBitmask |= options::CLDXCOption;
|
||||
IncludedFlagsBitmask |= options::CoreOption;
|
||||
} else {
|
||||
ExcludedFlagsBitmask |= options::DXCOption;
|
||||
}
|
||||
if (!IsClCompatMode && !IsDXCMode())
|
||||
ExcludedFlagsBitmask |= options::CLDXCOption;
|
||||
|
||||
return std::make_pair(IncludedFlagsBitmask, ExcludedFlagsBitmask);
|
||||
}
|
||||
|
||||
|
||||
@@ -3511,6 +3511,7 @@ static void RenderHLSLOptions(const ArgList &Args, ArgStringList &CmdArgs,
|
||||
types::ID InputType) {
|
||||
const unsigned ForwardedArguments[] = {options::OPT_dxil_validator_version,
|
||||
options::OPT_D,
|
||||
options::OPT_I,
|
||||
options::OPT_S,
|
||||
options::OPT_emit_llvm,
|
||||
options::OPT_disable_llvm_passes,
|
||||
|
||||
4
clang/test/Driver/dxc_I.hlsl
Normal file
4
clang/test/Driver/dxc_I.hlsl
Normal file
@@ -0,0 +1,4 @@
|
||||
// RUN: %clang_dxc -I test -### %s 2>&1 | FileCheck %s
|
||||
|
||||
// Make sure -I send to cc1.
|
||||
// CHECK:"-I" "test"
|
||||
Reference in New Issue
Block a user