[CostModel] remove cost-kind predicate for intrinsics in basic TTI implementation
authorSanjay Patel <spatel@rotateright.com>
Tue, 10 Nov 2020 13:11:39 +0000 (08:11 -0500)
committerSanjay Patel <spatel@rotateright.com>
Tue, 10 Nov 2020 13:19:31 +0000 (08:19 -0500)
commitf7eac51b9b3f780c96ca41913293851c5acb465b
tree49759f3a10143af98e5f4e6940f886491632e5a2
parent4c54399b7eaa487e91c32a0d9c2537611c25aee7
[CostModel] remove cost-kind predicate for intrinsics in basic TTI implementation

This is the last step in removing cost-kind as a consideration in the basic class model for intrinsics.
See D89461 for the start of that.
Subsequent commits dealt with each of the special-case intrinsics that had customization here in the
basic class. This should remove a barrier to retrying
D87188 (canonicalization to the abs intrinsic).

The ARM and x86 cost diffs seen here may be wrong because the target-specific overrides have their own
bugs, but we hope this is less wrong - if something has a significant throughput cost, then it should
have a significant size / blended cost too by default.

The only behavioral diff in current regression tests is shown in the x86 scatter-gather test (which is
misplaced or broken because it runs the entire -O3 pipeline) - we unrolled less, and we assume that is
a improvement.

Differential Revision: https://reviews.llvm.org/D90554
llvm/include/llvm/CodeGen/BasicTTIImpl.h
llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
llvm/test/Analysis/CostModel/ARM/arith-ssat.ll
llvm/test/Analysis/CostModel/ARM/arith-usat.ll
llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
llvm/test/Analysis/CostModel/X86/fmaxnum-size-latency.ll
llvm/test/Analysis/CostModel/X86/fminnum-size-latency.ll
llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll