diff --git a/clang/lib/Driver/ToolChains/SYCL.cpp b/clang/lib/Driver/ToolChains/SYCL.cpp index a489979748f39..c996908a9374c 100644 --- a/clang/lib/Driver/ToolChains/SYCL.cpp +++ b/clang/lib/Driver/ToolChains/SYCL.cpp @@ -22,9 +22,9 @@ using namespace clang::driver::tools; using namespace clang; using namespace llvm::opt; -const char *SYCL::Linker::constructLLVMSpirvCommand(Compilation &C, - const JobAction &JA, const InputInfo &Output, StringRef OutputFilePrefix, - bool ToBc, const char *InputFileName) const { +const char *SYCL::Linker::constructLLVMSpirvCommand( + Compilation &C, const JobAction &JA, const InputInfo &Output, + StringRef OutputFilePrefix, bool ToBc, const char *InputFileName) const { // Construct llvm-spirv command. // The output is a bc file or vice versa depending on the -r option usage // llvm-spirv -r -o a_kernel.bc a_kernel.spv @@ -33,7 +33,7 @@ const char *SYCL::Linker::constructLLVMSpirvCommand(Compilation &C, const char *OutputFileName = nullptr; if (ToBc) { std::string TmpName = - C.getDriver().GetTemporaryPath(OutputFilePrefix.str() + "-spirv", "bc"); + C.getDriver().GetTemporaryPath(OutputFilePrefix.str() + "-spirv", "bc"); OutputFileName = C.addTempFile(C.getArgs().MakeArgString(TmpName)); CmdArgs.push_back("-r"); CmdArgs.push_back("-o"); @@ -91,13 +91,13 @@ void SYCL::constructLLVMForeachCommand(Compilation &C, const JobAction &JA, SmallString<128> ForeachPath(C.getDriver().Dir); llvm::sys::path::append(ForeachPath, "llvm-foreach"); const char *Foreach = C.getArgs().MakeArgString(ForeachPath); - C.addCommand(std::make_unique( - JA, *T, ResponseFileSupport::None(), Foreach, ForeachArgs, None)); + C.addCommand(std::make_unique(JA, *T, ResponseFileSupport::None(), + Foreach, ForeachArgs, None)); } -const char *SYCL::Linker::constructLLVMLinkCommand(Compilation &C, - const JobAction &JA, const InputInfo &Output, const ArgList &Args, - StringRef SubArchName, StringRef OutputFilePrefix, +const char *SYCL::Linker::constructLLVMLinkCommand( + Compilation &C, const JobAction &JA, const InputInfo &Output, + const ArgList &Args, StringRef SubArchName, StringRef OutputFilePrefix, const InputInfoList &InputFiles) const { ArgStringList CmdArgs; // Add the input bc's created by compile step. @@ -148,10 +148,11 @@ const char *SYCL::Linker::constructLLVMLinkCommand(Compilation &C, } void SYCL::Linker::constructLlcCommand(Compilation &C, const JobAction &JA, - const InputInfo &Output, const char *InputFileName) const { + const InputInfo &Output, + const char *InputFileName) const { // Construct llc command. // The output is an object file. - ArgStringList LlcArgs{"-filetype=obj", "-o", Output.getFilename(), + ArgStringList LlcArgs{"-filetype=obj", "-o", Output.getFilename(), InputFileName}; SmallString<128> LlcPath(C.getDriver().Dir); llvm::sys::path::append(LlcPath, "llc"); @@ -164,12 +165,13 @@ void SYCL::Linker::constructLlcCommand(Compilation &C, const JobAction &JA, // a single SPIR-V binary. Input can also be bitcode when specified by // the user. void SYCL::Linker::ConstructJob(Compilation &C, const JobAction &JA, - const InputInfo &Output, - const InputInfoList &Inputs, - const ArgList &Args, - const char *LinkingOutput) const { + const InputInfo &Output, + const InputInfoList &Inputs, + const ArgList &Args, + const char *LinkingOutput) const { - assert((getToolChain().getTriple().isSPIR() || getToolChain().getTriple().isNVPTX()) && + assert((getToolChain().getTriple().isSPIR() || + getToolChain().getTriple().isNVPTX()) && "Unsupported target"); std::string SubArchName = @@ -205,9 +207,8 @@ void SYCL::Linker::ConstructJob(Compilation &C, const JobAction &JA, Args.hasArg(options::OPT_foffload_static_lib_EQ)) SpirvInputs.push_back(II); else { - const char *LLVMSpirvOutputFile = - constructLLVMSpirvCommand(C, JA, Output, Prefix, true, - II.getFilename()); + const char *LLVMSpirvOutputFile = constructLLVMSpirvCommand( + C, JA, Output, Prefix, true, II.getFilename()); SpirvInputs.push_back(InputInfo(types::TY_LLVM_BC, LLVMSpirvOutputFile, LLVMSpirvOutputFile)); } @@ -225,27 +226,24 @@ static const char *makeExeName(Compilation &C, StringRef Name) { return C.getArgs().MakeArgString(ExeName); } -void SYCL::fpga::BackendCompiler::ConstructJob(Compilation &C, - const JobAction &JA, - const InputInfo &Output, - const InputInfoList &Inputs, - const ArgList &Args, - const char *LinkingOutput) const { +void SYCL::fpga::BackendCompiler::ConstructJob( + Compilation &C, const JobAction &JA, const InputInfo &Output, + const InputInfoList &Inputs, const ArgList &Args, + const char *LinkingOutput) const { assert((getToolChain().getTriple().getArch() == llvm::Triple::spir || getToolChain().getTriple().getArch() == llvm::Triple::spir64) && "Unsupported target"); InputInfoList ForeachInputs; InputInfoList FPGADepFiles; - ArgStringList CmdArgs{"-o", Output.getFilename()}; + ArgStringList CmdArgs{"-o", Output.getFilename()}; for (const auto &II : Inputs) { std::string Filename(II.getFilename()); if (II.getType() == types::TY_Tempfilelist) ForeachInputs.push_back(II); if (II.getType() == types::TY_TempAOCOfilelist) // Add any FPGA library lists. These come in as special tempfile lists. - CmdArgs.push_back(Args.MakeArgString(Twine("-library-list=") + - Filename)); + CmdArgs.push_back(Args.MakeArgString(Twine("-library-list=") + Filename)); else if (II.getType() == types::TY_FPGA_Dependencies || II.getType() == types::TY_FPGA_Dependencies_List) FPGADepFiles.push_back(II); @@ -311,10 +309,10 @@ void SYCL::fpga::BackendCompiler::ConstructJob(Compilation &C, // Depending on output file designations, set the report folder SmallString<128> ReportOptArg; if (Arg *FinalOutput = Args.getLastArg(options::OPT_o, options::OPT__SLASH_o, - options::OPT__SLASH_Fe)) { + options::OPT__SLASH_Fe)) { SmallString<128> FN(FinalOutput->getValue()); llvm::sys::path::replace_extension(FN, "prj"); - const char * FolderName = Args.MakeArgString(FN); + const char *FolderName = Args.MakeArgString(FN); ReportOptArg += FolderName; } else { // Output directory is based off of the first object name as captured @@ -339,8 +337,8 @@ void SYCL::fpga::BackendCompiler::ConstructJob(Compilation &C, SmallString<128> ExecPath( getToolChain().GetProgramPath(makeExeName(C, "aoc"))); const char *Exec = C.getArgs().MakeArgString(ExecPath); - auto Cmd = std::make_unique( - JA, *this, ResponseFileSupport::None(), Exec, CmdArgs, None); + auto Cmd = std::make_unique(JA, *this, ResponseFileSupport::None(), + Exec, CmdArgs, None); if (!ForeachInputs.empty()) constructLLVMForeachCommand(C, JA, std::move(Cmd), ForeachInputs, Output, this, ForeachExt); @@ -349,15 +347,15 @@ void SYCL::fpga::BackendCompiler::ConstructJob(Compilation &C, } void SYCL::gen::BackendCompiler::ConstructJob(Compilation &C, - const JobAction &JA, - const InputInfo &Output, - const InputInfoList &Inputs, - const ArgList &Args, - const char *LinkingOutput) const { + const JobAction &JA, + const InputInfo &Output, + const InputInfoList &Inputs, + const ArgList &Args, + const char *LinkingOutput) const { assert((getToolChain().getTriple().getArch() == llvm::Triple::spir || getToolChain().getTriple().getArch() == llvm::Triple::spir64) && "Unsupported target"); - ArgStringList CmdArgs{"-output", Output.getFilename()}; + ArgStringList CmdArgs{"-output", Output.getFilename()}; InputInfoList ForeachInputs; for (const auto &II : Inputs) { CmdArgs.push_back("-file"); @@ -377,8 +375,8 @@ void SYCL::gen::BackendCompiler::ConstructJob(Compilation &C, SmallString<128> ExecPath( getToolChain().GetProgramPath(makeExeName(C, "ocloc"))); const char *Exec = C.getArgs().MakeArgString(ExecPath); - auto Cmd = std::make_unique( - JA, *this, ResponseFileSupport::None(), Exec, CmdArgs, None); + auto Cmd = std::make_unique(JA, *this, ResponseFileSupport::None(), + Exec, CmdArgs, None); if (!ForeachInputs.empty()) constructLLVMForeachCommand(C, JA, std::move(Cmd), ForeachInputs, Output, this); @@ -386,12 +384,10 @@ void SYCL::gen::BackendCompiler::ConstructJob(Compilation &C, C.addCommand(std::move(Cmd)); } -void SYCL::x86_64::BackendCompiler::ConstructJob(Compilation &C, - const JobAction &JA, - const InputInfo &Output, - const InputInfoList &Inputs, - const ArgList &Args, - const char *LinkingOutput) const { +void SYCL::x86_64::BackendCompiler::ConstructJob( + Compilation &C, const JobAction &JA, const InputInfo &Output, + const InputInfoList &Inputs, const ArgList &Args, + const char *LinkingOutput) const { ArgStringList CmdArgs; CmdArgs.push_back(Args.MakeArgString(Twine("-o=") + Output.getFilename())); CmdArgs.push_back("--device=cpu"); @@ -411,8 +407,8 @@ void SYCL::x86_64::BackendCompiler::ConstructJob(Compilation &C, SmallString<128> ExecPath( getToolChain().GetProgramPath(makeExeName(C, "opencl-aot"))); const char *Exec = C.getArgs().MakeArgString(ExecPath); - auto Cmd = std::make_unique( - JA, *this, ResponseFileSupport::None(), Exec, CmdArgs, None); + auto Cmd = std::make_unique(JA, *this, ResponseFileSupport::None(), + Exec, CmdArgs, None); if (!ForeachInputs.empty()) constructLLVMForeachCommand(C, JA, std::move(Cmd), ForeachInputs, Output, this); @@ -429,8 +425,7 @@ SYCLToolChain::SYCLToolChain(const Driver &D, const llvm::Triple &Triple, } void SYCLToolChain::addClangTargetOptions( - const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args, + const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadingKind) const { HostTC.addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadingKind); } @@ -471,8 +466,9 @@ static void parseTargetOpts(StringRef ArgString, const llvm::opt::ArgList &Args, // Expects a specific type of option (e.g. -Xsycl-target-backend) and will // extract the arguments. void SYCLToolChain::TranslateTargetOpt(const llvm::opt::ArgList &Args, - llvm::opt::ArgStringList &CmdArgs, OptSpecifier Opt, - OptSpecifier Opt_EQ) const { + llvm::opt::ArgStringList &CmdArgs, + OptSpecifier Opt, + OptSpecifier Opt_EQ) const { for (auto *A : Args) { bool OptNoTriple; OptNoTriple = A->getOption().matches(Opt); @@ -543,8 +539,8 @@ static void addImpliedArgs(const llvm::Triple &Triple, CmdArgs.push_back(Args.MakeArgString(BeOpt)); } -void SYCLToolChain::TranslateBackendTargetArgs(const llvm::opt::ArgList &Args, - llvm::opt::ArgStringList &CmdArgs) const { +void SYCLToolChain::TranslateBackendTargetArgs( + const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const { // Add any implied arguments before user defined arguments. addImpliedArgs(getTriple(), Args, CmdArgs); @@ -572,14 +568,14 @@ void SYCLToolChain::TranslateBackendTargetArgs(const llvm::opt::ArgList &Args, } // Handle -Xsycl-target-backend. TranslateTargetOpt(Args, CmdArgs, options::OPT_Xsycl_backend, - options::OPT_Xsycl_backend_EQ); + options::OPT_Xsycl_backend_EQ); } -void SYCLToolChain::TranslateLinkerTargetArgs(const llvm::opt::ArgList &Args, - llvm::opt::ArgStringList &CmdArgs) const { +void SYCLToolChain::TranslateLinkerTargetArgs( + const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const { // Handle -Xsycl-target-linker. TranslateTargetOpt(Args, CmdArgs, options::OPT_Xsycl_linker, - options::OPT_Xsycl_linker_EQ); + options::OPT_Xsycl_linker_EQ); } Tool *SYCLToolChain::buildBackendCompiler() const {