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) 16OPTION(FPContractMode, LangOptions::FPModeKind, 2, First) 17OPTION(RoundingMath, bool, 1, FPContractMode) 18OPTION(ConstRoundingMode, LangOptions::RoundingMode, 3, RoundingMath) 19OPTION(SpecifiedExceptionMode, LangOptions::FPExceptionModeKind, 2, ConstRoundingMode) 20OPTION(AllowFEnvAccess, bool, 1, SpecifiedExceptionMode) 21OPTION(AllowFPReassociate, bool, 1, AllowFEnvAccess) 22OPTION(NoHonorNaNs, bool, 1, AllowFPReassociate) 23OPTION(NoHonorInfs, bool, 1, NoHonorNaNs) 24OPTION(NoSignedZero, bool, 1, NoHonorInfs) 25OPTION(AllowReciprocal, bool, 1, NoSignedZero) 26OPTION(AllowApproxFunc, bool, 1, AllowReciprocal) 27OPTION(FPEvalMethod, LangOptions::FPEvalMethodKind, 2, AllowApproxFunc) 28OPTION(Float16ExcessPrecision, LangOptions::ExcessPrecisionKind, 2, FPEvalMethod) 29#undef OPTION 30