[PATCH] D148171: ValueTracking: Implement computeKnownFPClass for fdiv for nan/inf handling

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 01:07:27 PDT 2023


foad added inline comments.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4404
+    if (KnowSomethingUseful &&
+        (InterestedClasses & (fcInf | fcNan)) != fcNone) {
+      computeKnownFPClass(Op->getOperand(0), DemandedElts,
----------------
If InterestedClasses doesn't contain Inf or Nan, can't you bail out even earlier, before computing KnownRHS?


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4413
+    // TODO: Track sign bit.
+    // TODO: Is zero only possible if LHS is 0?
+    if (KnownLHS.isKnownNeverNaN() && KnownRHS.isKnownNeverNaN() &&
----------------
No, tiny/huge (both finite non-zero values) can produce zero.


================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:4424
+        KnownRHS.isKnownNeverLogicalZero(*F, Op->getType()))
+      Known.knownNot(fcInf);
+
----------------
No, huge/tiny (both finite non-zero values) can produce inf.


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

https://reviews.llvm.org/D148171



More information about the llvm-commits mailing list