1 //===--- PPC.h - PPC-specific Tool Helpers ----------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H
10 #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H
12 #include "clang/Driver/Driver.h"
13 #include "llvm/ADT/StringRef.h"
14 #include "llvm/Option/Option.h"
23 bool hasPPCAbiArg(const llvm::opt::ArgList &Args, const char *Value);
31 enum class ReadGOTPtrMode {
36 FloatABI getPPCFloatABI(const Driver &D, const llvm::opt::ArgList &Args);
38 std::string getPPCTargetCPU(const llvm::opt::ArgList &Args);
39 const char *getPPCAsmModeForCPU(StringRef Name);
40 ReadGOTPtrMode getPPCReadGOTPtrMode(const Driver &D, const llvm::Triple &Triple,
41 const llvm::opt::ArgList &Args);
43 void getPPCTargetFeatures(const Driver &D, const llvm::Triple &Triple,
44 const llvm::opt::ArgList &Args,
45 std::vector<llvm::StringRef> &Features);
47 } // end namespace ppc
48 } // end namespace target
49 } // end namespace driver
50 } // end namespace clang
52 #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_PPC_H