Linaro Connect 24

Cover image

Join us at Linaro Connect, where innovation meets collaboration!

Discover the future of ARM open-source software, network with industry leaders, engineers, and ARM software experts, and don’t forget the Linaro Connect hacking sessions.

Let’s connect, learn, and innovate together.

May 14, 2024

1 week ago

May 17, 2024

1 week ago

Madrid, Spain

Profile Picture
Shun Kamatsuka

Software Engineering...
Fujitsu Limited
Standard Ticket


MAD24-418 Software Pipelining Support for AArch64 in LLVM

  • Friday, 17 May 12:05 - 12:30
  • Room: Session 2 | Tenerife I

Software Pipelining is a loop optimization technique that schedules instructions across iterations to increase instruction-level parallelism. We have been working on MachinePipeliner pass, an implementation of Software Pipelining in LLVM. We have already completed basic support for AArch64. In Neoverse V1, we observed that Software Pipelining improves performance for several cases where instructions within the target loop have long dependency chains. The results suggest that Software Pipelining is effective for such loops, even in modern OoO processors. Some of our patches have been merged and Software Pipelining for AArch64 is already available in the main branch. However, these patches are not the only end of our goal. We think of that there is various room for improvement in MachinePipeliner. For example, we must provide user interfaces to apply Software Pipelining like pragma. We will continue to contribute MachinePipeliner. This session will provide the details of our development and performance improvement