clang  5.0.0
Functions
Gnu.cpp File Reference
#include "Gnu.h"
#include "Linux.h"
#include "Arch/ARM.h"
#include "Arch/Mips.h"
#include "Arch/Sparc.h"
#include "Arch/SystemZ.h"
#include "CommonArgs.h"
#include "clang/Basic/VirtualFileSystem.h"
#include "clang/Config/config.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetParser.h"
#include <system_error>
Include dependency graph for Gnu.cpp:

Go to the source code of this file.

Functions

static bool forwardToGCC (const Option &O)
 
static void AddOpenMPLinkerScript (const ToolChain &TC, Compilation &C, const InputInfo &Output, const InputInfoList &Inputs, const ArgList &Args, ArgStringList &CmdArgs, const JobAction &JA)
 Add OpenMP linker script arguments at the end of the argument list so that the fat binary is built by embedding each of the device images into the host. More...
 
static bool addXRayRuntime (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs)
 
static void linkXRayRuntimeDeps (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs)
 
static const char * getLDMOption (const llvm::Triple &T, const ArgList &Args)
 
static bool isSoftFloatABI (const ArgList &Args)
 
static void addMultilibFlag (bool Enabled, const char *const Flag, std::vector< std::string > &Flags)
 Flag must be a flag accepted by the driver with its leading '-' removed, More...
 
static bool isArmOrThumbArch (llvm::Triple::ArchType Arch)
 
static bool isMips32 (llvm::Triple::ArchType Arch)
 
static bool isMips64 (llvm::Triple::ArchType Arch)
 
static bool isMipsEL (llvm::Triple::ArchType Arch)
 
static bool isMips16 (const ArgList &Args)
 
static bool isMicroMips (const ArgList &Args)
 
static Multilib makeMultilib (StringRef commonSuffix)
 
static bool findMipsCsMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result)
 
static bool findMipsAndroidMultilibs (vfs::FileSystem &VFS, StringRef Path, const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result)
 
static bool findMipsMuslMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result)
 
static bool findMipsMtiMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result)
 
static bool findMipsImgMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result)
 
static void findAndroidArmMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result)
 
static bool findBiarchMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, bool NeedsBiarchSuffix, DetectedMultilibs &Result)
 
static llvm::StringRef getGCCToolchainDir (const ArgList &Args)
 

Function Documentation

static void addMultilibFlag ( bool  Enabled,
const char *const  Flag,
std::vector< std::string > &  Flags 
)
static

Flag must be a flag accepted by the driver with its leading '-' removed,

Definition at line 917 of file Gnu.cpp.

Referenced by findAndroidArmMultilibs(), and findBiarchMultilibs().

static void AddOpenMPLinkerScript ( const ToolChain TC,
Compilation C,
const InputInfo Output,
const InputInfoList Inputs,
const ArgList &  Args,
ArgStringList &  CmdArgs,
const JobAction JA 
)
static

Add OpenMP linker script arguments at the end of the argument list so that the fat binary is built by embedding each of the device images into the host.

The linker script also defines a few symbols required by the code generation so that the images can be easily retrieved at runtime by the offloading library. This should be used only in tool chains that support linker scripts.

Definition at line 212 of file Gnu.cpp.

References clang::driver::Compilation::addTempFile(), clang::driver::Driver::Diag(), clang::driver::Compilation::getArgs(), clang::driver::Compilation::getDriver(), clang::driver::InputInfo::getFilename(), clang::driver::Compilation::getOffloadToolChains(), clang::driver::Driver::GetTemporaryPath(), clang::driver::Action::isDeviceOffloading(), clang::driver::Action::isHostOffloading(), clang::driver::Driver::isSaveTempsEnabled(), Name, and clang::driver::Action::OFK_OpenMP.

Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().

static bool addXRayRuntime ( const ToolChain TC,
const ArgList &  Args,
ArgStringList &  CmdArgs 
)
static
static void findAndroidArmMultilibs ( const Driver D,
const llvm::Triple &  TargetTriple,
StringRef  Path,
const ArgList &  Args,
DetectedMultilibs Result 
)
static
static bool findBiarchMultilibs ( const Driver D,
const llvm::Triple &  TargetTriple,
StringRef  Path,
const ArgList &  Args,
bool  NeedsBiarchSuffix,
DetectedMultilibs Result 
)
static
static bool findMipsAndroidMultilibs ( vfs::FileSystem VFS,
StringRef  Path,
const Multilib::flags_list Flags,
FilterNonExistent &  NonExistent,
DetectedMultilibs Result 
)
static
static bool findMipsCsMultilibs ( const Multilib::flags_list Flags,
FilterNonExistent &  NonExistent,
DetectedMultilibs Result 
)
static
static bool findMipsImgMultilibs ( const Multilib::flags_list Flags,
FilterNonExistent &  NonExistent,
DetectedMultilibs Result 
)
static
static bool findMipsMtiMultilibs ( const Multilib::flags_list Flags,
FilterNonExistent &  NonExistent,
DetectedMultilibs Result 
)
static
static bool findMipsMuslMultilibs ( const Multilib::flags_list Flags,
FilterNonExistent &  NonExistent,
DetectedMultilibs Result 
)
static
static bool forwardToGCC ( const Option &  O)
static
static llvm::StringRef getGCCToolchainDir ( const ArgList &  Args)
static
static const char* getLDMOption ( const llvm::Triple &  T,
const ArgList &  Args 
)
static
static bool isArmOrThumbArch ( llvm::Triple::ArchType  Arch)
static

Definition at line 925 of file Gnu.cpp.

static bool isMicroMips ( const ArgList &  Args)
static

Definition at line 946 of file Gnu.cpp.

static bool isMips16 ( const ArgList &  Args)
static

Definition at line 941 of file Gnu.cpp.

static bool isMips32 ( llvm::Triple::ArchType  Arch)
static

Definition at line 929 of file Gnu.cpp.

static bool isMips64 ( llvm::Triple::ArchType  Arch)
static

Definition at line 933 of file Gnu.cpp.

static bool isMipsEL ( llvm::Triple::ArchType  Arch)
static

Definition at line 937 of file Gnu.cpp.

static bool isSoftFloatABI ( const ArgList &  Args)
static

Definition at line 904 of file Gnu.cpp.

static void linkXRayRuntimeDeps ( const ToolChain TC,
const ArgList &  Args,
ArgStringList &  CmdArgs 
)
static
static Multilib makeMultilib ( StringRef  commonSuffix)
static