[all-commits] [llvm/llvm-project] 2596da: [CostModel] getCFInstrCost in getUserCost.

Sam Parker via All-commits all-commits at lists.llvm.org
Mon Jun 15 01:31:18 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2596da31740ff753103e5d5e47ab30bae53d3d9d
      https://github.com/llvm/llvm-project/commit/2596da31740ff753103e5d5e47ab30bae53d3d9d
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2020-06-15 (Mon, 15 Jun 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Analysis/CostModel/AArch64/aggregates.ll
    M llvm/test/Analysis/CostModel/AArch64/cast.ll
    M llvm/test/Analysis/CostModel/AArch64/cmp.ll
    M llvm/test/Analysis/CostModel/AArch64/select.ll
    M llvm/test/Analysis/CostModel/AArch64/shuffle-broadcast.ll
    M llvm/test/Analysis/CostModel/AArch64/store.ll
    M llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
    M llvm/test/Analysis/CostModel/ARM/arith-ssat.ll
    M llvm/test/Analysis/CostModel/ARM/arith-usat.ll
    M llvm/test/Analysis/CostModel/ARM/arith.ll
    M llvm/test/Analysis/CostModel/ARM/cast.ll
    M llvm/test/Analysis/CostModel/ARM/cmps.ll
    M llvm/test/Analysis/CostModel/ARM/control-flow.ll
    M llvm/test/Analysis/CostModel/ARM/divrem.ll
    M llvm/test/Analysis/CostModel/ARM/fparith.ll
    M llvm/test/Analysis/CostModel/ARM/freeshift.ll
    M llvm/test/Analysis/CostModel/ARM/gep.ll
    M llvm/test/Analysis/CostModel/ARM/immediates.ll
    M llvm/test/Analysis/CostModel/ARM/load_store.ll
    M llvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-add.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-smax.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-smin.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-umax.ll
    M llvm/test/Analysis/CostModel/ARM/reduce-umin.ll
    M llvm/test/Analysis/CostModel/ARM/select.ll
    M llvm/test/Analysis/CostModel/ARM/shuffle.ll
    M llvm/test/Analysis/CostModel/RISCV/gep.ll
    M llvm/test/Analysis/CostModel/SystemZ/cmp-mem.ll
    M llvm/test/Analysis/CostModel/SystemZ/int-operands-extcost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/predication_costs.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/branch-for-predicated-block.ll

  Log Message:
  -----------
  [CostModel] getCFInstrCost in getUserCost.

Have BasicTTI call the base implementation so that both agree on the
default behaviour, which the default being a cost of '1'. This has
required an X86 specific implementation as it seems to be very
reliant on those instructions being free. Changes are also made to
AMDGPU so that their implementations distinguish between cost kinds,
so that the unrolling isn't affected. PowerPC also has its own
implementation to prevent changes to the reg-usage vectorizer test.

The cost model test changes now reflect that ret instructions are not
generally free.

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




More information about the All-commits mailing list