diff options
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index cfd32d1..23208b2d 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -117,12 +117,12 @@ void CodeGenFunction::SetFPModel() { void CodeGenFunction::SetFastMathFlags(FPOptions FPFeatures) { llvm::FastMathFlags FMF; - FMF.setAllowReassoc(FPFeatures.getAllowFPReassociate()); - FMF.setNoNaNs(FPFeatures.getNoHonorNaNs()); - FMF.setNoInfs(FPFeatures.getNoHonorInfs()); - FMF.setNoSignedZeros(FPFeatures.getNoSignedZero()); - FMF.setAllowReciprocal(FPFeatures.getAllowReciprocal()); - FMF.setApproxFunc(FPFeatures.getAllowApproxFunc()); + FMF.setAllowReassoc(FPFeatures.allowAssociativeMath()); + FMF.setNoNaNs(FPFeatures.noHonorNaNs()); + FMF.setNoInfs(FPFeatures.noHonorInfs()); + FMF.setNoSignedZeros(FPFeatures.noSignedZeros()); + FMF.setAllowReciprocal(FPFeatures.allowReciprocalMath()); + FMF.setApproxFunc(FPFeatures.allowApproximateFunctions()); FMF.setAllowContract(FPFeatures.allowFPContractAcrossStatement()); Builder.setFastMathFlags(FMF); } @@ -137,12 +137,10 @@ CodeGenFunction::CGFPOptionsRAII::CGFPOptionsRAII(CodeGenFunction &CGF, FMFGuard.emplace(CGF.Builder); - llvm::RoundingMode NewRoundingBehavior = - static_cast<llvm::RoundingMode>(FPFeatures.getRoundingMode()); + auto NewRoundingBehavior = FPFeatures.getRoundingMode(); CGF.Builder.setDefaultConstrainedRounding(NewRoundingBehavior); auto NewExceptionBehavior = - ToConstrainedExceptMD(static_cast<LangOptions::FPExceptionModeKind>( - FPFeatures.getFPExceptionMode())); + ToConstrainedExceptMD(FPFeatures.getExceptionMode()); CGF.Builder.setDefaultConstrainedExcept(NewExceptionBehavior); CGF.SetFastMathFlags(FPFeatures); @@ -161,13 +159,13 @@ CodeGenFunction::CGFPOptionsRAII::CGFPOptionsRAII(CodeGenFunction &CGF, if (OldValue != NewValue) CGF.CurFn->addFnAttr(Name, llvm::toStringRef(NewValue)); }; - mergeFnAttrValue("no-infs-fp-math", FPFeatures.getNoHonorInfs()); - mergeFnAttrValue("no-nans-fp-math", FPFeatures.getNoHonorNaNs()); - mergeFnAttrValue("no-signed-zeros-fp-math", FPFeatures.getNoSignedZero()); - mergeFnAttrValue("unsafe-fp-math", FPFeatures.getAllowFPReassociate() && - FPFeatures.getAllowReciprocal() && - FPFeatures.getAllowApproxFunc() && - FPFeatures.getNoSignedZero()); + mergeFnAttrValue("no-infs-fp-math", FPFeatures.noHonorInfs()); + mergeFnAttrValue("no-nans-fp-math", FPFeatures.noHonorNaNs()); + mergeFnAttrValue("no-signed-zeros-fp-math", FPFeatures.noSignedZeros()); + mergeFnAttrValue( + "unsafe-fp-math", + FPFeatures.allowAssociativeMath() && FPFeatures.allowReciprocalMath() && + FPFeatures.allowApproximateFunctions() && FPFeatures.noSignedZeros()); } CodeGenFunction::CGFPOptionsRAII::~CGFPOptionsRAII() { |