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