diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2019-08-29 19:29:11 +0700 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2019-11-15 19:56:33 +0700 |
commit | e6584b2b7b2de06f1e59aac41971760cac1e1b79 (patch) | |
tree | 7506796affad17479abef09b0a271e8547a80aa8 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 0df4a8f72a4fadc1e0978a0aa1786afa34945046 (diff) | |
download | bcm5719-llvm-e6584b2b7b2de06f1e59aac41971760cac1e1b79.tar.gz bcm5719-llvm-e6584b2b7b2de06f1e59aac41971760cac1e1b79.zip |
Move floating point related entities to namespace level
Enumerations that describe rounding mode and exception behavior were
defined inside ConstrainedFPIntrinsic. It makes sense to use the same
definitions to represent the same properties in other cases, not only
in constrained intrinsics. It was however inconvenient as required to
include constrained intrinsics definitions even if they were not needed.
Also using long scope prefix reduced readability.
This change moves these definitioins to the namespace llvm::fp.
No functional changes.
Differential Revision: https://reviews.llvm.org/D69552
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 3cb73f6d97c..b853401ebdc 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -33,6 +33,7 @@ #include "clang/Frontend/FrontendDiagnostic.h" #include "llvm/IR/DataLayout.h" #include "llvm/IR/Dominators.h" +#include "llvm/IR/FPEnv.h" #include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/Intrinsics.h" #include "llvm/IR/MDBuilder.h" @@ -106,36 +107,28 @@ CodeGenFunction::~CodeGenFunction() { // Map the LangOption for rounding mode into // the corresponding enum in the IR. -static llvm::ConstrainedFPIntrinsic::RoundingMode ToConstrainedRoundingMD( +static llvm::fp::RoundingMode ToConstrainedRoundingMD( LangOptions::FPRoundingModeKind Kind) { switch (Kind) { - case LangOptions::FPR_ToNearest: - return llvm::ConstrainedFPIntrinsic::rmToNearest; - case LangOptions::FPR_Downward: - return llvm::ConstrainedFPIntrinsic::rmDownward; - case LangOptions::FPR_Upward: - return llvm::ConstrainedFPIntrinsic::rmUpward; - case LangOptions::FPR_TowardZero: - return llvm::ConstrainedFPIntrinsic::rmTowardZero; - case LangOptions::FPR_Dynamic: - return llvm::ConstrainedFPIntrinsic::rmDynamic; + case LangOptions::FPR_ToNearest: return llvm::fp::rmToNearest; + case LangOptions::FPR_Downward: return llvm::fp::rmDownward; + case LangOptions::FPR_Upward: return llvm::fp::rmUpward; + case LangOptions::FPR_TowardZero: return llvm::fp::rmTowardZero; + case LangOptions::FPR_Dynamic: return llvm::fp::rmDynamic; } llvm_unreachable("Unsupported FP RoundingMode"); } // Map the LangOption for exception behavior into // the corresponding enum in the IR. -static llvm::ConstrainedFPIntrinsic::ExceptionBehavior ToConstrainedExceptMD( +static llvm::fp::ExceptionBehavior ToConstrainedExceptMD( LangOptions::FPExceptionModeKind Kind) { switch (Kind) { - case LangOptions::FPE_Ignore: - return llvm::ConstrainedFPIntrinsic::ebIgnore; - case LangOptions::FPE_MayTrap: - return llvm::ConstrainedFPIntrinsic::ebMayTrap; - case LangOptions::FPE_Strict: - return llvm::ConstrainedFPIntrinsic::ebStrict; + case LangOptions::FPE_Ignore: return llvm::fp::ebIgnore; + case LangOptions::FPE_MayTrap: return llvm::fp::ebMayTrap; + case LangOptions::FPE_Strict: return llvm::fp::ebStrict; } llvm_unreachable("Unsupported FP Exception Behavior"); } @@ -146,8 +139,8 @@ void CodeGenFunction::SetFPModel() { auto fpExceptionBehavior = ToConstrainedExceptMD( getLangOpts().getFPExceptionMode()); - if (fpExceptionBehavior == llvm::ConstrainedFPIntrinsic::ebIgnore && - fpRoundingMode == llvm::ConstrainedFPIntrinsic::rmToNearest) + if (fpExceptionBehavior == llvm::fp::ebIgnore && + fpRoundingMode == llvm::fp::rmToNearest) // Constrained intrinsics are not used. ; else { |