[PATCH] D116766: [SCEV] Sequential/in-order `UMin` expression

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 10 07:48:46 PST 2022


nikic accepted this revision.
nikic added a comment.
This revision is now accepted and ready to land.

I'm on board with the "sequential" name, LGTM from my side. But please wait for @reames to approve as well.

There are some pretty obvious folds we can do (in particular, we should be trying to convert umin_seq to umin with known non-zero/non-poison values), but those are best left for later.



================
Comment at: llvm/include/llvm/Analysis/ScalarEvolution.h:632
                             SmallVectorImpl<const SCEV *> &Operands);
+  const SCEV *getSaturatingMinMaxExpr(SCEVTypes Kind,
+                                      SmallVectorImpl<const SCEV *> &Operands);
----------------
Still using the old name here.


================
Comment at: llvm/include/llvm/Analysis/ScalarEvolution.h:736
+  const SCEV *getUMinFromMismatchedTypes(const SCEV *LHS, const SCEV *RHS,
+                                         bool Saturating = false);
 
----------------
Rename to Sequential here as well for consistency?


================
Comment at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:56
+  scUnknown,
+  scCouldNotCompute
+};
----------------
Precommit reformat of this file?


================
Comment at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:552
+    /// Set flags for a non-recurrence without clearing previously set flags.
+    void setNoWrapFlags(NoWrapFlags Flags) { SubclassData |= Flags; }
+
----------------
Is this needed? Doesn't look relevant for minmax.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D116766



More information about the llvm-commits mailing list