1 //===--- RISCV.h - RISC-V-specific Tool Helpers -----------------*- C++ -*-===// 2 // 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 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_RISCV_H 10 #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_RISCV_H 11 12 #include "clang/Driver/Driver.h" 13 #include "llvm/ADT/StringRef.h" 14 #include "llvm/Option/Option.h" 15 #include <string> 16 #include <vector> 17 18 namespace clang { 19 namespace driver { 20 namespace tools { 21 namespace riscv { 22 void getRISCVTargetFeatures(const Driver &D, const llvm::Triple &Triple, 23 const llvm::opt::ArgList &Args, 24 std::vector<llvm::StringRef> &Features); 25 StringRef getRISCVABI(const llvm::opt::ArgList &Args, 26 const llvm::Triple &Triple); 27 StringRef getRISCVArch(const llvm::opt::ArgList &Args, 28 const llvm::Triple &Triple); 29 std::string getRISCVTargetCPU(const llvm::opt::ArgList &Args, 30 const llvm::Triple &Triple); 31 } // end namespace riscv 32 } // namespace tools 33 } // end namespace driver 34 } // end namespace clang 35 36 #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_RISCV_H 37