[all-commits] [llvm/llvm-project] 22d10b: [CostModel] remove cost-kind predicate for vector ...

RotateRight via All-commits all-commits at lists.llvm.org
Sat Oct 24 10:22:57 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 22d10b8ab44f703b72b8316a9b3b8adc623ca73f
      https://github.com/llvm/llvm-project/commit/22d10b8ab44f703b72b8316a9b3b8adc623ca73f
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-10-24 (Sat, 24 Oct 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-add.ll
    M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll

  Log Message:
  -----------
  [CostModel] remove cost-kind predicate for vector reduction costs

This is similar in spirit to 01ea93d85d6e (memcpy) except that
here the underlying caller assumptions were created for vectorizer
use (throughput) rather than other passes.

That meant targets could have an enormous throughput cost with no
corresponding size, latency, or blended cost increase.
The ARM costs show a small difference between throughput and
size because there's an underlying difference in cmp/sel
costs that is also predicated on cost-kind.

Paraphrasing from the previous commits:
This may not make sense for some callers, but at least now the
costs will be consistently wrong instead of mysteriously wrong.

Targets should provide better overrides if the current modeling
is not accurate.




More information about the All-commits mailing list