Auto-Vectorization in HotSpot #JVMLS

This video explores the ongoing development and improvements in HotSpot C2’s auto vectoriser. After a brief introduction to the SuperWord algorithm, the presenter delves into significant enhancements already achieved and outlines plans for future advancements, using real-world examples and benchmarks. Key topics include:

  • Dependency Graph: Managing instruction reordering while preserving essential data and memory dependencies.
  • Aliasing Analysis: Techniques for safely packing loads and stores, with an emphasis on dynamic aliasing checks for MemorySegment loops.
  • Profitability of Vectorization: Addressing challenges like reductions and lane-crossing operations with advanced cost modeling.
  • Performance Regressions: Strategies to mitigate issues such as unaligned memory access, store-to-load forwarding failures, and cache line boundary splits.
  • Future Goals: Ambitions for if-conversion, efficient scans (e.g., prefix-sum, hash-code), more robust and interpretable vectorization algorithms, improved compilation times, and handling larger loop bodies.

This presentation is ideal for viewers interested in compiler optimization, vectorization, and JVM performance, offering both technical insights and practical examples from current industry advancements.

Make sure to check the JVMLS 2025 playlist.