[PATCH] D67572: [VectorUtils] Introduce the Vector Function Database (VFDatabase).

Mikael Holmén via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 11 06:55:03 PST 2019


uabelho added a comment.

Hi @fpetrogalli ,

A question regarding this patch.
For my out-of-tree target vectorization of intrinsics added for my target seems to have stopped working with this patch.
Is there something/what do I have to do to make the vectorizer understand my intrinsics are vectorizable?

Looking at this code in LoopVectorizationLegality.cpp:

  // We handle calls that:
  //   * Are debug info intrinsics.
  //   * Have a mapping to an IR intrinsic.
  //   * Have a vector version available.
  auto *CI = dyn_cast<CallInst>(&I);
  if (CI && !getVectorIntrinsicIDForCall(CI, TLI) &&
      !isa<DbgInfoIntrinsic>(CI) &&
      !(CI->getCalledFunction() && TLI &&
        !VFDatabase::getMappings(*CI).empty())) {

VFDatabase::getMappings(*CI).empty() is indeed true for my intrisic, and if I dig further, I take this return in

  static void getVFABIMappings(const CallInst &CI,
                               SmallVectorImpl<VFInfo> &Mappings) {
    const StringRef ScalarName = CI.getCalledFunction()->getName();
    const StringRef S =
        CI.getAttribute(AttributeList::FunctionIndex, VFABI::MappingsAttrName)
            .getValueAsString();
    if (S.empty())
      return;

Is there some existing commit where in-tree targets have been modified already to work with the new VFDatabase?

Thanks!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67572





More information about the llvm-commits mailing list