[all-commits] [llvm/llvm-project] 8ec7ea: [CostModel] make default size cost for libcalls sm...

RotateRight via All-commits all-commits at lists.llvm.org
Sat Nov 14 05:49:12 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8ec7ea3ddce7379e13e8dfb4a5260a6d2004aa1c
      https://github.com/llvm/llvm-project/commit/8ec7ea3ddce7379e13e8dfb4a5260a6d2004aa1c
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-11-14 (Sat, 14 Nov 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/X86/intrinsic-cost-kinds.ll
    M llvm/test/Transforms/LoopUnroll/AArch64/thresholdO3-cost-model.ll

  Log Message:
  -----------
  [CostModel] make default size cost for libcalls small (again)

This was changed recently with D90554 / f7eac51b9b3f
...because we had a regression testing blindspot for intrinsics
that are expected to be lowered to libcalls.

In general, we want the *size* cost for a scalar call to be cheap
even if the other costs are expensive - we expect it to just be
a branch with some optional stack manipulation.

It is likely that we will want to carve out some
exceptions/overrides to this rule as follow-up patches for
calls that have some general and/or target-specific difference
to the expected lowering.

This was noticed as a regression in unrolling, so we have a test
for that now along with a couple of direct cost model tests.

If the assumed scalarization costs for the oversized vector
calls are not realistic, that would be another follow-up
refinement of the cost models.




More information about the All-commits mailing list