xref: /openbsd-src/gnu/llvm/clang/lib/Driver/ToolChains/HLSL.h (revision 12c855180aad702bbcca06e0398d774beeafb155)
1*12c85518Srobert //===--- HLSL.h - HLSL ToolChain Implementations ----------------*- C++ -*-===//
2*12c85518Srobert //
3*12c85518Srobert // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*12c85518Srobert // See https://llvm.org/LICENSE.txt for license information.
5*12c85518Srobert // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*12c85518Srobert //
7*12c85518Srobert //===----------------------------------------------------------------------===//
8*12c85518Srobert 
9*12c85518Srobert #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
10*12c85518Srobert #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
11*12c85518Srobert 
12*12c85518Srobert #include "clang/Driver/ToolChain.h"
13*12c85518Srobert 
14*12c85518Srobert namespace clang {
15*12c85518Srobert namespace driver {
16*12c85518Srobert 
17*12c85518Srobert namespace toolchains {
18*12c85518Srobert 
19*12c85518Srobert class LLVM_LIBRARY_VISIBILITY HLSLToolChain : public ToolChain {
20*12c85518Srobert public:
21*12c85518Srobert   HLSLToolChain(const Driver &D, const llvm::Triple &Triple,
22*12c85518Srobert                 const llvm::opt::ArgList &Args);
isPICDefault()23*12c85518Srobert   bool isPICDefault() const override { return false; }
isPIEDefault(const llvm::opt::ArgList & Args)24*12c85518Srobert   bool isPIEDefault(const llvm::opt::ArgList &Args) const override {
25*12c85518Srobert     return false;
26*12c85518Srobert   }
isPICDefaultForced()27*12c85518Srobert   bool isPICDefaultForced() const override { return false; }
28*12c85518Srobert 
29*12c85518Srobert   llvm::opt::DerivedArgList *
30*12c85518Srobert   TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
31*12c85518Srobert                 Action::OffloadKind DeviceOffloadKind) const override;
32*12c85518Srobert   static std::optional<std::string> parseTargetProfile(StringRef TargetProfile);
33*12c85518Srobert };
34*12c85518Srobert 
35*12c85518Srobert } // end namespace toolchains
36*12c85518Srobert } // end namespace driver
37*12c85518Srobert } // end namespace clang
38*12c85518Srobert 
39*12c85518Srobert #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
40