72 lines · c
1//===- AMDGPUOpenMP.h - AMDGPUOpenMP ToolChain Implementation -*- 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPUOPENMP_H10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPUOPENMP_H11 12#include "AMDGPU.h"13#include "clang/Driver/Tool.h"14#include "clang/Driver/ToolChain.h"15 16namespace clang {17namespace driver {18 19namespace toolchains {20class AMDGPUOpenMPToolChain;21}22 23namespace toolchains {24 25class LLVM_LIBRARY_VISIBILITY AMDGPUOpenMPToolChain final26 : public ROCMToolChain {27public:28 AMDGPUOpenMPToolChain(const Driver &D, const llvm::Triple &Triple,29 const ToolChain &HostTC,30 const llvm::opt::ArgList &Args);31 32 const llvm::Triple *getAuxTriple() const override {33 return &HostTC.getTriple();34 }35 36 llvm::opt::DerivedArgList *37 TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch,38 Action::OffloadKind DeviceOffloadKind) const override;39 void40 addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,41 llvm::opt::ArgStringList &CC1Args,42 Action::OffloadKind DeviceOffloadKind) const override;43 void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args) const override;44 CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;45 void AddClangCXXStdlibIncludeArgs(46 const llvm::opt::ArgList &Args,47 llvm::opt::ArgStringList &CC1Args) const override;48 void49 AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,50 llvm::opt::ArgStringList &CC1Args) const override;51 void AddIAMCUIncludeArgs(const llvm::opt::ArgList &DriverArgs,52 llvm::opt::ArgStringList &CC1Args) const override;53 54 SanitizerMask getSupportedSanitizers() const override;55 56 VersionTuple57 computeMSVCVersion(const Driver *D,58 const llvm::opt::ArgList &Args) const override;59 60 llvm::SmallVector<BitCodeLibraryInfo, 12>61 getDeviceLibs(const llvm::opt::ArgList &Args,62 const Action::OffloadKind DeviceOffloadKind) const override;63 64 const ToolChain &HostTC;65};66 67} // end namespace toolchains68} // end namespace driver69} // end namespace clang70 71#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPUOPENMP_H72