mibintc marked 2 inline comments as done.
mibintc added inline comments.

================
Comment at: clang/lib/CodeGen/CGExprScalar.cpp:4085
     // this should improve codegen just a little.
-    RHS = Visit(E->getRHS());
-    LHS = EmitCheckedLValue(E->getLHS(), CodeGenFunction::TCK_Store);
+    if (E->getType()->isFloatingType()) {
+      //  Preserve the old values, enable FPFeatures for these expressions
----------------
mibintc wrote:
> In the previous rendition of this patch, when the Builder.FMF settings were 
> modified at Visit(BinaryExpression), the assign is seen as a binary 
> expression and so the FPFeatures was passed into IRBuilder. I'm not confident 
> this patch is in the right place, I'd really like to put FPFeatures onto the 
> CallExpr node, because if you call a builtin intrinsic function, and the mode 
> is set to float_control(except, on), the call node for the intrinsic doesn't 
> have the FPFeature bits, so it isn't marked as expected. Before I make that 
> change I want @rjmccall to take another look;  If FPFeatures was on CallExpr 
> then I'd remove it here and modify IRBuilder.FMF when visiting CallExpr 
I got rid of the bogus code here and moved it into VisitCallExpr where it 
belongs. 


================
Comment at: clang/lib/CodeGen/CGExprScalar.cpp:611
 
+    //  Preserve the old values
+    llvm::IRBuilder<>::FastMathFlagGuard FMFG(Builder);
----------------
The call expr might be a call to an intrinsic, the floating point intrinsic 
calls need to be marked properly with information from FPFeatures


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

Reply via email to