[SLP][Modularisation][NFC] Extract commutativity and ordering helpers into SLPUtils 2/3 (#209080)
Please refer to RFC:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Move into SLPVectorizer/SLPUtils.{h,cpp} (namespace
llvm::slpvectorizer):
- UsesLimit (constant)
- isCommutative(Instruction *, Value *, bool)
- isCommutative(Instruction *) (overload)
- isCommutableOperand
- getNumberOfPotentiallyCommutativeOps
- getElementIndex
- inversePermutation
- reorderScalars
- shortBundleName (debug-only, #if !defined(NDEBUG))
- areAllOperandsNonInsts
- isUsedOutsideBlock
- doesNotNeedToBeScheduled
- doesNotNeedToSchedule
(Please note that the move is intended to be verbatim. I welcome
comments about latents issues/comment changes and any other simple
things but will take them in a separate patch.)
Assisted by Cursor.
GitOrigin-RevId: 6705f3d3d2e6e9a151505375ab567ec82c54a637
3 files changed