[PATCH] D30732: LoopVectorizer: let target limit memory intensive loops

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 22 03:44:54 PDT 2017


jonpa updated this revision to Diff 92616.
jonpa added a comment.
Herald added subscribers: nhaehnle, nemanjai, arsenm.
Herald added a reviewer: javed.absar.

I reworked this so that the decisions for VF and IC are handled separately:

New method checkVectorizationFactorForMem()
New argument: unsigned getMaxInterleaveFactor(unsigned VF, DecisionList *WideningDecisions = nullptr) const;

< Jonas, I think this means we may indeed have to do something better than just counting the total number of stores in the loop ...
See SystemZTTIImpl::checkVectorizationFactorForMem()


https://reviews.llvm.org/D30732

Files:
  include/llvm/Analysis/TargetTransformInfo.h
  include/llvm/Analysis/TargetTransformInfoImpl.h
  include/llvm/CodeGen/BasicTTIImpl.h
  lib/Analysis/TargetTransformInfo.cpp
  lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  lib/Target/AArch64/AArch64TargetTransformInfo.h
  lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
  lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
  lib/Target/ARM/ARMTargetTransformInfo.h
  lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  lib/Target/PowerPC/PPCTargetTransformInfo.h
  lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  lib/Target/SystemZ/SystemZTargetTransformInfo.h
  lib/Target/X86/X86TargetTransformInfo.cpp
  lib/Target/X86/X86TargetTransformInfo.h
  lib/Transforms/Vectorize/LoopVectorize.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30732.92616.patch
Type: text/x-patch
Size: 23162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170322/3d53ce77/attachment.bin>


More information about the llvm-commits mailing list