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