- Leveraging “nsw” in Flang’s LLVM IR Generation for Vectorization
- Leveraging LLVM for Instruction Cache Prefetching on Simple Architectures
- #embed in clang: one directive to embed them all
- LLVM_ENABLE_RUNTIMES=flang-rt
- LLDB support for Propeller optimized code
- 1:N Dialect Conversion in MLIR
1) Leveraging “nsw” in Flang’s LLVM IR Generation for Vectorization - Yusuke Minato
Flang is the Fortran frontend in the LLVM project. Its quality and performance have been improving, so that its driver has been renamed from “flang-new” to “flang” since LLVM 20. With respect to optimizations, loop vectorization plays an important role because it can reduce the number of operations in a loop by half or more. This talk focuses on Flang’s capability of vectorization in the backend and our work on “nsw” to improve the capability. As a result of our work, loop vectorization for Fortran has been enhanced by introducing several options related to integer overflow into Flang.
2) Leveraging LLVM for Instruction Cache Prefetching on Simple Architectures - Oriel Avraham
This talk explores the addition of a lightweight, non-blocking instruction cache prefetching mechanism tailored for simple hardware architectures without built-in I$ optimization components. We will discuss how the LLVM framework can be used to identify strategical points for prefetch insertion through static analysis
3) #embed in clang: one directive to embed them all - Mariya Podchishchaeva
The C23 standard defines the #embed directive – a fast, simple, tooling-friendly, cross-platform standardized way to include binary data into an application. For 40+ years of C and C++ implementations every compiler, every linker, every platform had its own little bespoke way of putting data into your executable. Since 2024 with C23 we now have #embed in clang: just one directive to (rule) embed them all. This talk will present the language feature design, feature status in clang, clang implementation details, and challenges faced during the implementation.
4) LLVM_ENABLE_RUNTIMES=flang-rt - Michael Kruse
Flang's runtime library was changed from being compiled as part of Flang itself, to using LLVM's mechanism for runtime libraries. On this occasion this talk is about the motivation behind this change, design choices, the implications for users, experiences of the conversion, the purpose of runtime libraries, comparison to Clang's runtime libraries, and the differences between LLVM_ENABLE_PROJECTS and LLVM_ENABLE_RUNTIMES.
5) LLDB support for Propeller optimized code - Pavel Labath
Propeller optimization boosts binary performance by up to 20%, but creates challenges for LLDB due to non-continuous functions. This talk unveils how LLDB was adapted to handle these complexities and explains how to avoid common pitfalls when writing new LLDB code.
6) 1:N Dialect Conversion in MLIR - Matthias Springer
The dialect conversion framework, one of the core pattern drivers in MLIR, has recently been extended with 1:N support: replacing one SSA value with multiple other SSA values. This talk illustrates how to use the new infrastructure and migrate existing passes that are currently relying on workarounds