25 const llvm::opt::ArgStringList &Args) {
26 llvm::opt::ArgStringList CmdArgs(Args);
29 assert(Input.
getType() != types::TY_PP_Asm &&
"Unexpected input type");
31 if (Output.
getType() == types::TY_PP_Asm)
32 CmdArgs.push_back(
"--spirv-tools-dis");
38 using namespace std::string_literals;
39 auto VersionedTool =
"llvm-spirv-"s + std::to_string(LLVM_VERSION_MAJOR);
40 std::string ExeCand =
T.getToolChain().GetProgramPath(VersionedTool.c_str());
41 if (!llvm::sys::fs::can_execute(ExeCand))
42 ExeCand =
T.getToolChain().GetProgramPath(
"llvm-spirv");
44 const char *Exec = C.getArgs().MakeArgString(ExeCand);
46 Exec, CmdArgs, Input, Output));
53 const llvm::opt::ArgStringList &Args) {
54 llvm::opt::ArgStringList CmdArgs(Args);
57 assert(Input.
getType() == types::TY_PP_Asm &&
"Unexpected input type");
63 using namespace std::string_literals;
64 auto VersionedTool =
"spirv-as-"s + std::to_string(LLVM_VERSION_MAJOR);
65 std::string ExeCand =
T.getToolChain().GetProgramPath(VersionedTool.c_str());
66 if (!llvm::sys::fs::can_execute(ExeCand))
67 ExeCand =
T.getToolChain().GetProgramPath(
"spirv-as");
69 const char *Exec = C.getArgs().MakeArgString(ExeCand);
71 Exec, CmdArgs, Input, Output));
78 const char *LinkingOutput)
const {
80 if (Inputs.size() != 1)
81 llvm_unreachable(
"Invalid number of input files.");
89 const char *AssembleOutput)
const {
91 if (Inputs.size() != 1)
92 llvm_unreachable(
"Invalid number of input files.");
98 Translator = std::make_unique<SPIRV::Translator>(*
this);
104 Assembler = std::make_unique<SPIRV::Assembler>(*
this);
105 return Assembler.get();
118 return SPIRVToolChain::getTranslator();
120 return SPIRVToolChain::getAssembler();
132 const char *LinkingOutput)
const {
135 ArgStringList CmdArgs;
138 CmdArgs.push_back(
"-o");
143 if (Args.hasArg(options::OPT_sycl_link))
146 Args.MakeArgString(
Linker), CmdArgs,
155 NativeLLVMSupport = Args.hasArg(options::OPT_sycl_link);
Defines version macros and version-related utility functions for Clang.
__device__ __2f16 float __ockl_bool s
ActionClass getKind() const
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
const FunctionProtoType * T
static constexpr ResponseFileSupport None()
Returns a ResponseFileSupport indicating that response files are not supported.