xref: /freebsd-src/contrib/llvm-project/clang/lib/Driver/ToolChains/HIPUtility.h (revision 0eae32dcef82f6f06de6419a0d623d7def0cc8f6)
1*0eae32dcSDimitry Andric //===--- HIPUtility.h - Common HIP Tool Chain Utilities ---------*- C++ -*-===//
2*0eae32dcSDimitry Andric //
3*0eae32dcSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0eae32dcSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0eae32dcSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0eae32dcSDimitry Andric //
7*0eae32dcSDimitry Andric //===----------------------------------------------------------------------===//
8*0eae32dcSDimitry Andric 
9*0eae32dcSDimitry Andric #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HIPUTILITY_H
10*0eae32dcSDimitry Andric #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HIPUTILITY_H
11*0eae32dcSDimitry Andric 
12*0eae32dcSDimitry Andric #include "clang/Driver/Tool.h"
13*0eae32dcSDimitry Andric 
14*0eae32dcSDimitry Andric namespace clang {
15*0eae32dcSDimitry Andric namespace driver {
16*0eae32dcSDimitry Andric namespace tools {
17*0eae32dcSDimitry Andric namespace HIP {
18*0eae32dcSDimitry Andric 
19*0eae32dcSDimitry Andric // Construct command for creating HIP fatbin.
20*0eae32dcSDimitry Andric void constructHIPFatbinCommand(Compilation &C, const JobAction &JA,
21*0eae32dcSDimitry Andric                                StringRef OutputFileName,
22*0eae32dcSDimitry Andric                                const InputInfoList &Inputs,
23*0eae32dcSDimitry Andric                                const llvm::opt::ArgList &TCArgs, const Tool &T);
24*0eae32dcSDimitry Andric 
25*0eae32dcSDimitry Andric // Construct command for creating Object from HIP fatbin.
26*0eae32dcSDimitry Andric void constructGenerateObjFileFromHIPFatBinary(
27*0eae32dcSDimitry Andric     Compilation &C, const InputInfo &Output, const InputInfoList &Inputs,
28*0eae32dcSDimitry Andric     const llvm::opt::ArgList &Args, const JobAction &JA, const Tool &T);
29*0eae32dcSDimitry Andric 
30*0eae32dcSDimitry Andric } // namespace HIP
31*0eae32dcSDimitry Andric } // namespace tools
32*0eae32dcSDimitry Andric } // namespace driver
33*0eae32dcSDimitry Andric } // namespace clang
34*0eae32dcSDimitry Andric 
35*0eae32dcSDimitry Andric #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HIPUTILITY_H
36