summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/CodeGen/BackendUtil.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index 541e676be20..2eab7554006 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -537,6 +537,12 @@ void EmitAssemblyHelper::CreateTargetMachine(bool MustCreateTM) {
.Case("posix", llvm::ThreadModel::POSIX)
.Case("single", llvm::ThreadModel::Single);
+ Options.FPDenormalType =
+ llvm::StringSwitch<llvm::FPDenormal::DenormalType>(CodeGenOpts.FPDenormalMode)
+ .Case("ieee", llvm::FPDenormal::IEEE)
+ .Case("preserve-sign", llvm::FPDenormal::PreserveSign)
+ .Case("positive-zero", llvm::FPDenormal::PositiveZero);
+
// Set float ABI type.
assert((CodeGenOpts.FloatABI == "soft" || CodeGenOpts.FloatABI == "softfp" ||
CodeGenOpts.FloatABI == "hard" || CodeGenOpts.FloatABI.empty()) &&
@@ -579,6 +585,7 @@ void EmitAssemblyHelper::CreateTargetMachine(bool MustCreateTM) {
Options.LessPreciseFPMADOption = CodeGenOpts.LessPreciseFPMAD;
Options.NoInfsFPMath = CodeGenOpts.NoInfsFPMath;
Options.NoNaNsFPMath = CodeGenOpts.NoNaNsFPMath;
+ Options.NoTrappingFPMath = CodeGenOpts.NoTrappingMath;
Options.NoZerosInBSS = CodeGenOpts.NoZeroInitializedInBSS;
Options.UnsafeFPMath = CodeGenOpts.UnsafeFPMath;
Options.StackAlignmentOverride = CodeGenOpts.StackAlignment;
OpenPOWER on IntegriCloud