clang 22.0.0git
VEToolchain.h
Go to the documentation of this file.
1//===--- VE.h - VE ToolChain Implementations --------------------*- 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_VE_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_VE_H
11
12#include "Linux.h"
14
15namespace clang {
16namespace driver {
17namespace toolchains {
18
19class LLVM_LIBRARY_VISIBILITY VEToolChain : public Linux {
20public:
21 VEToolChain(const Driver &D, const llvm::Triple &Triple,
22 const llvm::opt::ArgList &Args);
23
24protected:
25 Tool *buildAssembler() const override;
26 Tool *buildLinker() const override;
27
28public:
29 bool isPICDefault() const override;
30 bool isPIEDefault(const llvm::opt::ArgList &Args) const override;
31 bool isPICDefaultForced() const override;
32 bool SupportsProfiling() const override;
33 bool hasBlocksRuntime() const override;
34 void
35 AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
36 llvm::opt::ArgStringList &CC1Args) const override;
37 void
38 addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
39 llvm::opt::ArgStringList &CC1Args,
40 Action::OffloadKind DeviceOffloadKind) const override;
42 const llvm::opt::ArgList &DriverArgs,
43 llvm::opt::ArgStringList &CC1Args) const override;
44 void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
45 llvm::opt::ArgStringList &CmdArgs) const override;
46
47 llvm::ExceptionHandling
48 GetExceptionModel(const llvm::opt::ArgList &Args) const override;
49
51 GetCXXStdlibType(const llvm::opt::ArgList &Args) const override {
53 }
54
58
59 const char *getDefaultLinker() const override { return "nld"; }
60};
61
62} // end namespace toolchains
63} // end namespace driver
64} // end namespace clang
65
66#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_VE_H
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
Definition Driver.h:99
Tool - Information on a specific compilation tool.
Definition Tool.h:32
Linux(const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
Definition Linux.cpp:212
llvm::ExceptionHandling GetExceptionModel(const llvm::opt::ArgList &Args) const override
GetExceptionModel - Return the tool chain exception model.
VEToolChain(const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
VE tool chain.
const char * getDefaultLinker() const override
GetDefaultLinker - Get the default linker to use.
Definition VEToolchain.h:59
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override
AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard libr...
bool SupportsProfiling() const override
SupportsProfiling - Does this tool chain support -pg.
void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override
Add the clang cc1 arguments for system include paths.
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override
Definition VEToolchain.h:51
bool isPICDefaultForced() const override
Tests whether this toolchain forces its default for PIC, PIE or non-PIC.
RuntimeLibType GetDefaultRuntimeLibType() const override
GetDefaultRuntimeLibType - Get the default runtime library variant to use.
Definition VEToolchain.h:55
bool isPIEDefault(const llvm::opt::ArgList &Args) const override
Test whether this toolchain defaults to PIE.
bool hasBlocksRuntime() const override
hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the...
Tool * buildLinker() const override
Tool * buildAssembler() const override
void AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for...
void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const override
Add options that need to be passed to cc1 for this target.
bool isPICDefault() const override
Test whether this toolchain defaults to PIC.
The JSON file list parser is used to communicate input to InstallAPI.