[PATCH] D139594: [FuzzMutate] InstModificationStrategy, add FastMath flags and exact flags to instructions.

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 7 18:03:05 PST 2022


arsenm added inline comments.


================
Comment at: llvm/lib/FuzzMutate/IRMutator.cpp:221-223
+          // Set everything
+          Modifications.push_back([&Inst] { Inst.setFast(true); });
+          Modifications.push_back([&Inst] { Inst.setFast(false); });
----------------
I don't know exactly how the fuzz argument works, but won't these interfere? Setting all is superfluous with setting every individual flag


================
Comment at: llvm/unittests/FuzzMutate/StrategiesTest.cpp:330
+  BinaryOperator *AShr = cast<BinaryOperator>(&*F.begin()->begin());
+  ASSERT_TRUE(M && !verifyModule(*M, &errs()));
+  bool FoundExact = false;
----------------
Separate ASSERT_TRUE for each


================
Comment at: llvm/unittests/FuzzMutate/StrategiesTest.cpp:354
+        %PHIdouble = phi double [%a, %True], [%b, %False]  \n\
+        %Call = call [4 x <4 x double>] @vecdouble(double %PHIdouble)  \n\
+        %c = fneg double %PHIdouble  \n\
----------------
Do we even allow fmf on arrays of vectors? 


================
Comment at: llvm/unittests/FuzzMutate/StrategiesTest.cpp:368-374
+  for (auto &F : *M)
+    for (auto &BB : F)
+      for (auto &I : BB) {
+        Type *Ty = I.getType();
+        if (Ty->isFPOrFPVectorTy() || Ty->isArrayTy())
+          FPOpsHasFastMath[&I] = false;
+      }
----------------
Missing paces. Can you also reduce the indentation level by factoring out the innermost loop or something?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139594/new/

https://reviews.llvm.org/D139594



More information about the llvm-commits mailing list