[PATCH] D60401: [llvm-exegesis] When generating templates with chained instructions, also add templates for helper instructions

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 11 05:30:12 PDT 2019


lebedev.ri added a comment.

In D60401#1462578 <https://reviews.llvm.org/D60401#1462578>, @gchatelet wrote:

> In D60401#1462567 <https://reviews.llvm.org/D60401#1462567>, @lebedev.ri wrote:
>
> > In D60401#1462522 <https://reviews.llvm.org/D60401#1462522>, @gchatelet wrote:
> >
> > > ...
> >
> >
> > So i agree in general, but i don't think i agree with fine print.
> >
> > What if i don't want to validate the whole entirety of the instructions,
> >  but only one of these instructions that is `Measurable through another instruction`?
> >  I simply can't?
>
>
> Well yes that would still be possible but you'd still need to go through the preprocessing / build the dependency graph for the subset of interest. The exploration would be restricted to the instruction + dependent instructions.
>  There will be a startup cost for this strategy but it will take much less time than testing everything.
>
> If the startup cost is too big there are a few possibilities we can investigate:
>
> - use a cache to store the precomputed data.
> - have the precomputation done during llvm-exegesis build.
>
>   Would that work for you?


I think we are talking about *essentially* the same thing, just from
different perspectives so it looks like we are talking about different things.

*Of course* it will still need preprocessing, there will just be no way around that
(well, that is if we do not want to use apriori data).

What i'm saying is, i wouldn't want to run the entire exhaustive benchmark over all the
instructions just so that i can look at a single instruction that needs post-processing.

I'd want to run a *subset* of the benchmarks, that would only explore the target instruction,
plus some extra instructions to 'replace' apriori data.
Which is roughly what this patch does.

So from where i'm sitting, the other exploration is a generalization of *this*.
Maybe i'm missing the point?


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60401/new/

https://reviews.llvm.org/D60401





More information about the llvm-commits mailing list