llvm-project/llvm/test/Analysis/CostModel/ARM
Sander de Smalen 4ca860742d [InstructionCost] Don't conflate Invalid costs with Unknown costs.
We previously made a change to getUserCost to return a Invalid cost
when one of the TTI costs returned '-1' (meaning 'unknown' or
'infinitely expensive'). It makes no sense to say that:

  shufflevector <2 x i8> %x, <2 x i8> %y, <4 x i32> <i32 0, i32 1, i32 2, i32 3>

has an invalid cost. Perhaps the cost is not known, but the IR is valid
and can be code-generated. Invalid should only be used for IR that
cannot possibly be code-generated and where a cost is nonsensical.

With more passes now asserting that the cost must be valid, it is possible
that those assertions will fail for perfectly valid IR. An incomplete
cost-model probably shouldn't be a reason for the compiler to break.

It's better to consider these costs as 'very expensive' and ignore them
for other reasons. At some point, we should consider replacing -1 with
some other mechanism.

Reviewed By: paulwalker-arm, dmgreen

Differential Revision: https://reviews.llvm.org/D99502
2021-03-30 09:29:42 +01:00
..
add-cast-vect.ll
arith-overflow.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
arith-ssat.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
arith-usat.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
arith.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
cast.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
cast_ldst.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
cmps.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
control-flow.ll [ARM][CostModel] Implement getCFInstrCost 2020-08-05 12:44:51 +01:00
divrem.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
fparith.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
freeshift.ll [CostModel] getCFInstrCost in getUserCost. 2020-06-15 09:28:46 +01:00
gep.ll [CostModel][ARM] Remove unused check-prefix 2020-11-10 13:10:12 +00:00
immediates.ll [ARM][CostModel] Select instruction costs. 2020-08-21 08:49:56 +01:00
insertelement.ll
intrinsic-cost-kinds.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
lit.local.cfg
load_store.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
logicalop.ll [TTI] Consider select form of and/or i1 as having arithmetic cost 2021-03-02 02:18:19 +09:00
memcpy.ll [ARM][CostModel] Implement getCFInstrCost 2020-08-05 12:44:51 +01:00
mul-cast-vect.ll [ARM][CostModel] Implement getCFInstrCost 2020-08-05 12:44:51 +01:00
mve-abs.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-active_lane_mask.ll [ARM] Add a very basic active_lane_mask cost 2020-10-17 10:09:42 +01:00
mve-cmp.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-gather-scatter-cost.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-minmax.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-vecreduce-add.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
reduce-add.ll [ARM] remove cost-kind predicate for most math op costs 2020-11-03 17:23:46 -05:00
reduce-and.ll [Cost]Canonicalize the cost for logical or/and reductions. 2021-03-19 11:01:58 -07:00
reduce-or.ll [Cost]Canonicalize the cost for logical or/and reductions. 2021-03-19 11:01:58 -07:00
reduce-smax.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
reduce-smin.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
reduce-umax.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
reduce-umin.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
select.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
shl-cast-vect.ll [ARM][CostModel] Implement getCFInstrCost 2020-08-05 12:44:51 +01:00
shuffle.ll [InstructionCost] Don't conflate Invalid costs with Unknown costs. 2021-03-30 09:29:42 +01:00
sub-cast-vect.ll [ARM][CostModel] Implement getCFInstrCost 2020-08-05 12:44:51 +01:00
target-intrinsics.ll [CostModel] Make target intrinsics cheap by default 2020-11-03 09:58:28 +00:00