1 | //===--- FPOptions.def - Floating Point Options database --------*- 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 the Floating Point language options. Users of this file |
10 | // must define the OPTION macro to make use of this information. |
11 | #ifndef OPTION |
12 | # error Define the OPTION macro to handle floating point language options |
13 | #endif |
14 | |
15 | // OPTION(name, type, width, previousName) |
16 | OPTION(FPContractMode, LangOptions::FPModeKind, 2, First) |
17 | OPTION(RoundingMath, bool, 1, FPContractMode) |
18 | OPTION(ConstRoundingMode, LangOptions::RoundingMode, 3, RoundingMath) |
19 | OPTION(SpecifiedExceptionMode, LangOptions::FPExceptionModeKind, 2, ConstRoundingMode) |
20 | OPTION(AllowFEnvAccess, bool, 1, SpecifiedExceptionMode) |
21 | OPTION(AllowFPReassociate, bool, 1, AllowFEnvAccess) |
22 | OPTION(NoHonorNaNs, bool, 1, AllowFPReassociate) |
23 | OPTION(NoHonorInfs, bool, 1, NoHonorNaNs) |
24 | OPTION(NoSignedZero, bool, 1, NoHonorInfs) |
25 | OPTION(AllowReciprocal, bool, 1, NoSignedZero) |
26 | OPTION(AllowApproxFunc, bool, 1, AllowReciprocal) |
27 | OPTION(FPEvalMethod, LangOptions::FPEvalMethodKind, 2, AllowApproxFunc) |
28 | OPTION(Float16ExcessPrecision, LangOptions::ExcessPrecisionKind, 2, FPEvalMethod) |
29 | OPTION(BFloat16ExcessPrecision, LangOptions::ExcessPrecisionKind, 2, Float16ExcessPrecision) |
30 | OPTION(MathErrno, bool, 1, BFloat16ExcessPrecision) |
31 | OPTION(ComplexRange, LangOptions::ComplexRangeKind, 2, MathErrno) |
32 | #undef OPTION |
33 | |