[PATCH] D40177: performance improvements for ThunderX2 T99

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 27 06:33:37 PST 2017


fhahn added a comment.

In https://reviews.llvm.org/D40177#932950, @steleman wrote:

> > Also if I understand correctly, this should have an impact on scheduling instructions using WriteAtomic, like CASB.
>
> It doesn't. Maybe it was supposed to, in theory, but in reality it makes no difference whatsoever.
>
> The only noticeable difference is in instruction cost: when Unsupported == 1, the estimated instruction cost is higher than when Unsupported == 0. Which makes no difference whatsoever in practice, given that the real cost of LSE instructions is pretty high anyway.
>
> We've been emitting LSE instructions with no problems for many months. Whether or not Unsupported was 0 or 1 made no difference whatsoever.


It is probably unlikely that atomic instructions are in hot loops of most benchmarks, so I am not surprised that you do not see any impact on runtimes (assuming that's what you meant with 'it makes no difference whatsoever). However there should be cases where it should make a difference when scheduling, but it probably requires some time to come up with a test case.

I think going forward, it would be best to split up this patch in 3 independent parts:

1. enableAggressiveFMAFusion
2. WriteAtomic change
3. LoopMicroOpBufferSize

This would make it slightly easier to review/accept, keep track of comments independent things, and to revert in case something goes wrong.


Repository:
  rL LLVM

https://reviews.llvm.org/D40177





More information about the llvm-commits mailing list