[llvm] [VPlan] Compute cost of more replicating loads/stores in ::computeCost. (PR #160053)
David Sherwood via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 23 02:33:20 PDT 2025
================
@@ -3075,6 +3075,63 @@ bool VPReplicateRecipe::shouldPack() const {
});
}
+/// Returns true if \p Ptr is a pointer computation for which the legacy cost
+/// model computes a SCEV expression when comping the address cost.
+static bool shouldUseAddressAccessSCEV(VPValue *Ptr) {
+ auto *PtrR = Ptr->getDefiningRecipe();
+ if (!PtrR || !((isa<VPReplicateRecipe>(PtrR) &&
+ cast<VPReplicateRecipe>(PtrR)->getOpcode() ==
+ Instruction::GetElementPtr) ||
+ isa<VPWidenGEPRecipe>(PtrR)))
+ return false;
+
+ // We are looking for a gep with all loop invariant indices except for one
+ // which should be an induction variable.
+ unsigned NumOperands = PtrR->getNumOperands();
+ for (unsigned Idx = 1; Idx < NumOperands; ++Idx) {
+ VPValue *Opd = PtrR->getOperand(Idx);
+ if (!(Opd->isDefinedOutsideLoopRegions()) &&
----------------
david-arm wrote:
nit: I think you can drop the brackets around `Opd->isDefinedOutsideLoopRegions()`
https://github.com/llvm/llvm-project/pull/160053
More information about the llvm-commits
mailing list