diff options
author | Melanie Blower <melanie.blower@intel.com> | 2020-06-15 12:43:37 -0700 |
---|---|---|
committer | Melanie Blower <melanie.blower@intel.com> | 2020-06-26 07:41:09 -0700 |
commit | 3a748cbf86cea3844fada04eeff4cc64b01f67e0 (patch) | |
tree | 620989f2a8aa50e79cc8056d7828306aef260b12 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | c8295de4a66adcc610c315df69286f02c306a1c9 (diff) | |
download | llvm-3a748cbf86cea3844fada04eeff4cc64b01f67e0.zip llvm-3a748cbf86cea3844fada04eeff4cc64b01f67e0.tar.gz llvm-3a748cbf86cea3844fada04eeff4cc64b01f67e0.tar.bz2 |
Modify FPFeatures to use delta not absolute settings
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.cpp | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 23208b2d..cfd32d1 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.allowAssociativeMath()); - FMF.setNoNaNs(FPFeatures.noHonorNaNs()); - FMF.setNoInfs(FPFeatures.noHonorInfs()); - FMF.setNoSignedZeros(FPFeatures.noSignedZeros()); - FMF.setAllowReciprocal(FPFeatures.allowReciprocalMath()); - FMF.setApproxFunc(FPFeatures.allowApproximateFunctions()); + 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.setAllowContract(FPFeatures.allowFPContractAcrossStatement()); Builder.setFastMathFlags(FMF); } @@ -137,10 +137,12 @@ CodeGenFunction::CGFPOptionsRAII::CGFPOptionsRAII(CodeGenFunction &CGF, FMFGuard.emplace(CGF.Builder); - auto NewRoundingBehavior = FPFeatures.getRoundingMode(); + llvm::RoundingMode NewRoundingBehavior = + static_cast<llvm::RoundingMode>(FPFeatures.getRoundingMode()); CGF.Builder.setDefaultConstrainedRounding(NewRoundingBehavior); auto NewExceptionBehavior = - ToConstrainedExceptMD(FPFeatures.getExceptionMode()); + ToConstrainedExceptMD(static_cast<LangOptions::FPExceptionModeKind>( + FPFeatures.getFPExceptionMode())); CGF.Builder.setDefaultConstrainedExcept(NewExceptionBehavior); CGF.SetFastMathFlags(FPFeatures); @@ -159,13 +161,13 @@ CodeGenFunction::CGFPOptionsRAII::CGFPOptionsRAII(CodeGenFunction &CGF, if (OldValue != NewValue) CGF.CurFn->addFnAttr(Name, llvm::toStringRef(NewValue)); }; - 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()); + 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()); } CodeGenFunction::CGFPOptionsRAII::~CGFPOptionsRAII() { |