[all-commits] [llvm/llvm-project] 2d6ecf: [SLP] Support vectorizing functions provided by ve...

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Mar 10 06:11:55 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2d6ecf464839ee2515bb01616207a6e5641c7c48
      https://github.com/llvm/llvm-project/commit/2d6ecf464839ee2515bb01616207a6e5641c7c48
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Other/opt-O2-pipeline.ll
    M llvm/test/Other/opt-O3-pipeline.ll
    M llvm/test/Other/opt-Os-pipeline.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll

  Log Message:
  -----------
  [SLP] Support vectorizing functions provided by vector libs.

It seems like the SLPVectorizer is currently not aware of vector
versions of functions provided by libraries like Accelerate [1].
This patch updates SLPVectorizer to use the same infrastructure
the LoopVectorizer uses to detect vectorizable library functions.

For calls, it computes the cost of an intrinsic call (existing behavior)
and the cost of a vector function library call, if available. Like
LoopVectorizer, it assumes the cost of the vector function is simply the
cost of a call to a vector function.

[1] https://developer.apple.com/documentation/accelerate

Reviewers: ABataev, RKSimon, spatel

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D75878




More information about the All-commits mailing list