[PATCH] D109417: Cost model for VPMemory operations on PowerPC.
Bardia Mahjour via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 21 10:43:51 PDT 2021
bmahjour added inline comments.
================
Comment at: llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp:1367
+
+ if (!getVPLegalizationStrategy(*dyn_cast<VPIntrinsic>(I)).shouldDoNothing()) {
+ // Currently we can only lower intrinsics with evl but no mask, on Power
----------------
RolandF wrote:
> RolandF wrote:
> > The Instruction pointer I is optional but is dereferenced unconditionally. The is likely to segfault. There is a dyn_cast but the result is not checked for nullptr so there may also be a segfault if I is something else. If a valid vp intrinsic pointer is expected for this target implementation then there should be an assert to check the dyn_cast result.
> Having the entire middle of the function occupied by a path that one probably never wants to execute is slightly painful. I would suggest handling the shouldDoNothing path first instead.
Actually the `getVPLegalizationStrategy` doesn't seem like the right interface to use (because we may not have the VP intrinsics available at the time we do cost-analysis). What we really need is something that can tell us if the opcode/type combination is considered legal on a target (ie PPC). I think I asked this question before, and someone told me to use `hasActiveVectorLength()`. However, I think we need to change that interface to take in more pieces of info. I'm going to look into that next.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109417/new/
https://reviews.llvm.org/D109417
More information about the llvm-commits
mailing list