[llvm-dev] [RFC] Porting MachinePipeliner to AArch64+SVE
Masaki Arai via llvm-dev
llvm-dev at lists.llvm.org
Mon Jun 11 05:23:09 PDT 2018
Thank you very much for your comments.
Florian Hahn <florian.hahn at arm.com> writes:
> IIUC from having a first look at your patch, there is nothing SVE
> specific there so far. Although it potentially will be very useful for
> SVE, it should also be beneficial for AArch64 without SVE and X86,
Our significant target is FUJITSU's AArch64+SVE CPU, but I think
MachinePipeliner is beneficial for AArch 64 without SVE or any ILP
However, I'm not sure for x86.
> As there are no scheduling models available for SVE in LLVM
> yet, I suppose it would be a good motivation if you could show some
> benefit on existing AArch64 or X86 cores with your proposed modelling.
It is easy to make a small test set that can confirm performance
However, I think there are many challenges to make MachinePipeliner
really beneficial on AArch64 without SVE for actual applications.
(a) Preparing the appropriate machine model for scheduling
(b) Consideration of register pressure in AArch64
(Coordination with register allocation pass)
(c) Extending iteration dependence distance (2 or more)
(d) Consideration of the impact of VPlan's estimation
(Coordination with VPlan)
(e) Consideration of the impact of loop optimizations
(especially loop distribution)
(f) Consideration of the impact of flang
I would like to make it work only when option `-enable-pipeliner' is
specified until these issues are solved.
> IMO it makes sense to go with (b), given that the dispatch overhead
> should be tiny compared to the other work that's going on and we also
> added similar hooks to the generic machine scheduler recently. But it
> seems like this is a smaller implementation detail and making sure we
> are getting the modelling aspect right is more important.
One of the reasons for posting the RFC is that MachinePipeliner is
Therefore, I would like to hear the opinion of MachinePipeliner
I am glad to make any patches, but since I do not have a Hexagon
environment, I'm worried whether I can thoroughly test them.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev