xref: /openbsd-src/gnu/llvm/clang/lib/Driver/ToolChains/Arch/SystemZ.h (revision ec727ea710c91afd8ce4f788c5aaa8482b7b69b2)
1e5dd7070Spatrick //===--- SystemZ.h - SystemZ-specific Tool Helpers --------------*- C++ -*-===//
2e5dd7070Spatrick //
3e5dd7070Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4e5dd7070Spatrick // See https://llvm.org/LICENSE.txt for license information.
5e5dd7070Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6e5dd7070Spatrick //
7e5dd7070Spatrick //===----------------------------------------------------------------------===//
8e5dd7070Spatrick 
9e5dd7070Spatrick #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SYSTEMZ_H
10e5dd7070Spatrick #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SYSTEMZ_H
11e5dd7070Spatrick 
12*ec727ea7Spatrick #include "clang/Driver/Driver.h"
13e5dd7070Spatrick #include "llvm/ADT/StringRef.h"
14e5dd7070Spatrick #include "llvm/Option/Option.h"
15e5dd7070Spatrick #include <string>
16e5dd7070Spatrick #include <vector>
17e5dd7070Spatrick 
18e5dd7070Spatrick namespace clang {
19e5dd7070Spatrick namespace driver {
20e5dd7070Spatrick namespace tools {
21e5dd7070Spatrick namespace systemz {
22e5dd7070Spatrick 
23*ec727ea7Spatrick enum class FloatABI {
24*ec727ea7Spatrick   Soft,
25*ec727ea7Spatrick   Hard,
26*ec727ea7Spatrick };
27*ec727ea7Spatrick 
28*ec727ea7Spatrick FloatABI getSystemZFloatABI(const Driver &D, const llvm::opt::ArgList &Args);
29*ec727ea7Spatrick 
30e5dd7070Spatrick std::string getSystemZTargetCPU(const llvm::opt::ArgList &Args);
31e5dd7070Spatrick 
32*ec727ea7Spatrick void getSystemZTargetFeatures(const Driver &D, const llvm::opt::ArgList &Args,
33e5dd7070Spatrick                               std::vector<llvm::StringRef> &Features);
34e5dd7070Spatrick 
35e5dd7070Spatrick } // end namespace systemz
36e5dd7070Spatrick } // end namespace target
37e5dd7070Spatrick } // end namespace driver
38e5dd7070Spatrick } // end namespace clang
39e5dd7070Spatrick 
40e5dd7070Spatrick #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ARCH_SYSTEMZ_H
41