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