[PATCH] D104060: Machine IR Profile

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 14 16:48:01 PDT 2021


Good summary.


> For instance, the important Kirichoff's circult law (aka spanning tree)
> optimization is not implemented. (I added the optimization to clang
> -fprofile-generate).
>

You probably meant -fprofile-instr-generate :)



> So in bad cases (e.g. libvpx) -fprofile-instr-generate can be 15% slower
> than -fprofile-arcs/-fprofile-generate.
>
> The loop optimization (instead of adding a counter N times, add N to it)
> cannot be enabled.
> The benefit is relatively small, though.
>
> The frontend cannot apply inlining or some early optimizations to greatly
> decrease the number of counters.
>
> Instrumenting machine basic blocks feels awkward to me.
> Now much semantic information is lost. The loop optimization definitely
> cannot be applied.
> Edge profiling is tricky. Edge profiling requires splitting critical edges
> - it is not clear how you can do this after the machine basic block layout
> is finalized.
>
>
David

>
> Repository:
>   rG LLVM Github Monorepo
>
> CHANGES SINCE LAST ACTION
>   https://reviews.llvm.org/D104060/new/
>
> https://reviews.llvm.org/D104060
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210614/96fd7cab/attachment.html>


More information about the llvm-commits mailing list