xref: /freebsd/contrib/llvm-project/llvm/include/llvm/Frontend/Driver/CodeGenOptions.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1 //===--- CodeGenOptions.h ---------------------------------------*- 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 //  This file defines frontend codegen options common to clang and flang
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_FRONTEND_DRIVER_CODEGENOPTIONS_H
14 #define LLVM_FRONTEND_DRIVER_CODEGENOPTIONS_H
15 
16 namespace llvm {
17 class Triple;
18 class TargetLibraryInfoImpl;
19 } // namespace llvm
20 
21 namespace llvm::driver {
22 
23 /// Vector library option used with -fveclib=
24 enum class VectorLibrary {
25   NoLibrary,          // Don't use any vector library.
26   Accelerate,         // Use the Accelerate framework.
27   LIBMVEC,            // GLIBC vector math library.
28   MASSV,              // IBM MASS vector library.
29   SVML,               // Intel short vector math library.
30   SLEEF,              // SLEEF SIMD Library for Evaluating Elementary Functions.
31   Darwin_libsystem_m, // Use Darwin's libsystem_m vector functions.
32   ArmPL,              // Arm Performance Libraries.
33   AMDLIBM             // AMD vector math library.
34 };
35 
36 TargetLibraryInfoImpl *createTLII(llvm::Triple &TargetTriple,
37                                   VectorLibrary Veclib);
38 
39 } // end namespace llvm::driver
40 
41 #endif
42