1317019Sdim//===--- AArch64.h - AArch64-specific (not ARM) Tool Helpers ----*- C++ -*-===//
2317019Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6317019Sdim//
7317019Sdim//===----------------------------------------------------------------------===//
8317019Sdim
9317019Sdim#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_AARCH64_H
10317019Sdim#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_AARCH64_H
11317019Sdim
12317019Sdim#include "clang/Driver/Driver.h"
13317019Sdim#include "llvm/ADT/StringRef.h"
14317019Sdim#include "llvm/Option/Option.h"
15317019Sdim#include <string>
16317019Sdim#include <vector>
17317019Sdim
18317019Sdimnamespace clang {
19317019Sdimnamespace driver {
20317019Sdimnamespace tools {
21317019Sdimnamespace aarch64 {
22317019Sdim
23344779Sdimvoid getAArch64TargetFeatures(const Driver &D, const llvm::Triple &Triple,
24344779Sdim                              const llvm::opt::ArgList &Args,
25317019Sdim                              std::vector<llvm::StringRef> &Features);
26317019Sdim
27317019Sdimstd::string getAArch64TargetCPU(const llvm::opt::ArgList &Args,
28344779Sdim                                const llvm::Triple &Triple, llvm::opt::Arg *&A);
29317019Sdim
30317019Sdim} // end namespace aarch64
31317019Sdim} // end namespace target
32317019Sdim} // end namespace driver
33317019Sdim} // end namespace clang
34317019Sdim
35317019Sdim#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_AARCH64_H
36