cfang added a comment. -ffast-math flag got lost in the Builder after this change.
FMF.isFast() is true before updateFastMathFlags(FMF, FPFeatures), but turns false after. It seems the Builder.FMF has been correctly set before, but I am not clear what FPFeatures should be at this point: +static void setBuilderFlagsFromFPFeatures(CGBuilderTy &Builder, + CodeGenFunction &CGF, + FPOptions FPFeatures) { + auto NewRoundingBehavior = FPFeatures.getRoundingMode(); + Builder.setDefaultConstrainedRounding(NewRoundingBehavior); + auto NewExceptionBehavior = + ToConstrainedExceptMD(FPFeatures.getExceptionMode()); + Builder.setDefaultConstrainedExcept(NewExceptionBehavior); + auto FMF = Builder.getFastMathFlags(); + updateFastMathFlags(FMF, FPFeatures); + Builder.setFastMathFlags(FMF); + assert((CGF.CurFuncDecl == nullptr || Builder.getIsFPConstrained() || + isa<CXXConstructorDecl>(CGF.CurFuncDecl) || + isa<CXXDestructorDecl>(CGF.CurFuncDecl) || + (NewExceptionBehavior == llvm::fp::ebIgnore && + NewRoundingBehavior == llvm::RoundingMode::NearestTiesToEven)) && + "FPConstrained should be enabled on entire function"); +} Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D72841/new/ https://reviews.llvm.org/D72841 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits