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