[LLVMdev] Instruction Cost

Chandler Carruth chandlerc at google.com
Wed Jan 14 16:05:48 PST 2015


On Wed, Jan 14, 2015 at 3:54 PM, Jingyue Wu <jingyue at google.com> wrote:

> I'm looking for APIs that compute instruction costs, and noticed several
> of them.
>
> 1. A series of APIs of TargetTransformInfo that compute the cost of
> instructions of a particular type (e.g. getArithmeticInstrCost and
> getShuffleCost)
> 2. TargetTransformInfo::getOperationCost
> 3. CostModel::getInstructionCost::getInstructionCost in
> lib/Analysis/CostModel.cpp
>
> Only the first one is used extensively in LLVM's code base, but the second
> and third one seems more recently added and more general, making me think
> if they are designed to replace the first approach.
>
> So, what's the recommended way to compute instruction costs?
>

It depends on what for...

#3 above is a *very* coarse, but target independent heuristic. It's used
for basic things that don't need a lot of detail at all.

#1 and #2 are both in TTI and useful to target-specific IR transforms such
as the vectorizers and the partial unroller. I would expect #2 to be
implemented in terms of #1 and generally just a wrapper that provides a
generic interface.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150114/946141cf/attachment.html>


More information about the llvm-dev mailing list