Path: blob/main/contrib/llvm-project/clang/lib/Driver/ToolChains/Arch/PPC.h
35294 views
//===--- PPC.h - PPC-specific Tool Helpers ----------------------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H9#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H1011#include "clang/Driver/Driver.h"12#include "llvm/ADT/StringRef.h"13#include "llvm/Option/Option.h"14#include <string>15#include <vector>1617namespace clang {18namespace driver {19namespace tools {20namespace ppc {2122bool hasPPCAbiArg(const llvm::opt::ArgList &Args, const char *Value);2324enum class FloatABI {25Invalid,26Soft,27Hard,28};2930enum class ReadGOTPtrMode {31Bss,32SecurePlt,33};3435FloatABI getPPCFloatABI(const Driver &D, const llvm::opt::ArgList &Args);3637std::string getPPCTargetCPU(const Driver &D, const llvm::opt::ArgList &Args,38const llvm::Triple &T);39std::string getPPCTuneCPU(const llvm::opt::ArgList &Args,40const llvm::Triple &T);41const char *getPPCAsmModeForCPU(StringRef Name);42ReadGOTPtrMode getPPCReadGOTPtrMode(const Driver &D, const llvm::Triple &Triple,43const llvm::opt::ArgList &Args);4445void getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,46const llvm::opt::ArgList &Args,47std::vector<llvm::StringRef> &Features);4849} // end namespace ppc50} // end namespace target51} // end namespace driver52} // end namespace clang5354#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H555657