xref: /freebsd/contrib/llvm-project/clang/lib/Driver/ToolChains/HLSL.h (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
181ad6265SDimitry Andric //===--- HLSL.h - HLSL ToolChain Implementations ----------------*- C++ -*-===//
281ad6265SDimitry Andric //
381ad6265SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
481ad6265SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
581ad6265SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
681ad6265SDimitry Andric //
781ad6265SDimitry Andric //===----------------------------------------------------------------------===//
881ad6265SDimitry Andric 
981ad6265SDimitry Andric #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
1081ad6265SDimitry Andric #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
1181ad6265SDimitry Andric 
1281ad6265SDimitry Andric #include "clang/Driver/ToolChain.h"
1381ad6265SDimitry Andric 
1481ad6265SDimitry Andric namespace clang {
1581ad6265SDimitry Andric namespace driver {
1681ad6265SDimitry Andric 
1781ad6265SDimitry Andric namespace toolchains {
1881ad6265SDimitry Andric 
1981ad6265SDimitry Andric class LLVM_LIBRARY_VISIBILITY HLSLToolChain : public ToolChain {
2081ad6265SDimitry Andric public:
2181ad6265SDimitry Andric   HLSLToolChain(const Driver &D, const llvm::Triple &Triple,
2281ad6265SDimitry Andric                 const llvm::opt::ArgList &Args);
2381ad6265SDimitry Andric   bool isPICDefault() const override { return false; }
2481ad6265SDimitry Andric   bool isPIEDefault(const llvm::opt::ArgList &Args) const override {
2581ad6265SDimitry Andric     return false;
2681ad6265SDimitry Andric   }
2781ad6265SDimitry Andric   bool isPICDefaultForced() const override { return false; }
2881ad6265SDimitry Andric 
2981ad6265SDimitry Andric   llvm::opt::DerivedArgList *
3081ad6265SDimitry Andric   TranslateArgs(const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
3181ad6265SDimitry Andric                 Action::OffloadKind DeviceOffloadKind) const override;
32*bdd1243dSDimitry Andric   static std::optional<std::string> parseTargetProfile(StringRef TargetProfile);
3381ad6265SDimitry Andric };
3481ad6265SDimitry Andric 
3581ad6265SDimitry Andric } // end namespace toolchains
3681ad6265SDimitry Andric } // end namespace driver
3781ad6265SDimitry Andric } // end namespace clang
3881ad6265SDimitry Andric 
3981ad6265SDimitry Andric #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HLSL_H
40