1193323Sed//===--- LoongArch.h - LoongArch-specific Tool Helpers ----------*- C++ -*-===// 2193323Sed// 3193323Sed// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4193323Sed// See https://llvm.org/LICENSE.txt for license information. 5193323Sed// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6193323Sed// 7193323Sed//===----------------------------------------------------------------------===// 8193323Sed 9193323Sed#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_LOONGARCH_H 10193323Sed#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_LOONGARCH_H 11193323Sed 12193323Sed#include "clang/Driver/Driver.h" 13193323Sed#include "llvm/ADT/StringRef.h" 14193323Sed#include "llvm/Option/Option.h" 15193323Sed 16193323Sednamespace clang { 17193323Sednamespace driver { 18249423Sdimnamespace tools { 19193323Sednamespace loongarch { 20193323Sedvoid getLoongArchTargetFeatures(const Driver &D, const llvm::Triple &Triple, 21193323Sed const llvm::opt::ArgList &Args, 22193323Sed std::vector<llvm::StringRef> &Features); 23218893Sdim 24193323SedStringRef getLoongArchABI(const Driver &D, const llvm::opt::ArgList &Args, 25193323Sed const llvm::Triple &Triple); 26193323Sed 27193323Sedstd::string postProcessTargetCPUString(const std::string &CPU, 28193323Sed const llvm::Triple &Triple); 29218893Sdim 30193323Sedstd::string getLoongArchTargetCPU(const llvm::opt::ArgList &Args, 31193323Sed const llvm::Triple &Triple); 32193323Sed} // end namespace loongarch 33193323Sed} // end namespace tools 34193323Sed} // end namespace driver 35193323Sed} // end namespace clang 36193323Sed 37193323Sed#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_LOONGARCH_H 38234353Sdim