Skip to content

Commit

Permalink
2023-05 EuroLLVM dev meeting (#8)
Browse files Browse the repository at this point in the history
* 2023-05 EuroLLVM dev meeting

* changes to order for 2023-05

* Update data/devmtg/2023-05/keynote.yml

---------

Co-authored-by: Chaitanya Shahare <[email protected]>
  • Loading branch information
pranavkalpathishankar and Chaitanya-Shahare authored Jan 26, 2025
1 parent 018e156 commit 694b515
Show file tree
Hide file tree
Showing 9 changed files with 909 additions and 0 deletions.
112 changes: 112 additions & 0 deletions content/devmtg/2023-05.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
title: "2023 EuroLLVM Developers' Meeting"
description: ""
date: 2023-05-10T19:45:19+05:30
toc: true
tags: []
draft: false
---

{{< event_data "2023-05" >}}

## About

The Euro LLVM Developers' Meeting is a bi-annual gathering of the entire LLVM Project community. The conference is organized by the LLVM Foundation and many volunteers within the LLVM community. Developers and users of LLVM, Clang, and related subprojects will enjoy attending interesting talks, impromptu discussions, and networking with the many members of our community. Whether you are a new to the LLVM project or a long time member, there is something for each attendee.

To see the agenda, speakers, and register, please visit the Event Site here: https://llvm.swoogo.com/2024eurollvm

What can you can expect at an LLVM Developers' Meeting?

- **Technical Talks**

These 20-30 minute talks cover all topics from core infrastructure talks, to project's using LLVM's infrastructure. Attendees will take away technical information that could be pertinent to their project or general interest.
- **Tutorials**

Tutorials are 50-60 minute sessions that dive down deep into a technical topic. Expect in depth examples and explanations.

- **Lightning Talks**

These are fast 5 minute talks that give you a taste of a project or topic. Attendees will hear a wide range of topics and probably leave wanting to learn more.

- **Quick Talks**

Quick 10 minute talks that dive a bit deeper into a topic, but not as deep as a Technical Talk.

- **Student Technical Talks**

Graduate or Undergraduate students present their work using LLVM.


What types of people attend?

- Active developers of projects in the LLVM Umbrella (LLVM core, Clang, LLDB, libc++, compiler_rt, flang, lld, MLIR, etc).
- Anyone interested in using these as part of another project.
- Students and Researchers
- Compiler, programming language, and runtime enthusiasts.
- Those interested in using compiler and toolchain technology in novel and interesting ways.

The LLVM Developers' Meeting strives to be the best conference to meet other LLVM developers and users.

For future announcements or questions: Please visit the LLVM Discourse forums. Most posts are in the Announcements or Community categories and tagged with usllvmdevmtg.

## Program

### Keynote

{{< event_talks
"devmtg/2023-05/keynote"
"keynote"
>}}
### Technical Talks

{{< event_talks
"devmtg/2023-05/technical_talks"
"technical_talks"
>}}
### Tutorials

{{< event_talks
"devmtg/2023-05/tutorials"
"tutorials"
>}}
### Quick Talks

{{< event_talks
"devmtg/2023-05/quick_talks"
"quick_talks"
>}}
### Lightning Talks

{{< event_talks
"devmtg/2023-05/lightning_talks"
"lightning_talks"
>}}
### Student Technical Talks

{{< event_talks
"devmtg/2023-05/student_technical_talks"
"student_technical_talks"
>}}
### Posters

{{< event_posters
"devmtg/2023-05/posters"
"posters"
>}}
## Code of Conduct

The LLVM Foundation is dedicated to providing an inclusive and safe
experience for everyone. We do not tolerate harassment of participants in any
form. By registering for this event, we expect you to have read and agree to
the [LLVM Code of Conduct](http://llvm.org/docs/CodeOfConduct.html).

## Contact

To contact the organizer, email [[email protected]](mailto:[email protected]).
24 changes: 24 additions & 0 deletions data/devmtg/2023-05/keynote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
keynote:
- title: "Order out of Chaos, The LLVM Release Process"
speaker: Tobias Hieta, Ubisoft
video_url: https://youtu.be/onaNb2U1Od8
slides_url: https://llvm.org/devmtg/2023-05/slides/TechnicalTalks-May10/01-Tobias%20Hieta-LLVM-Release-Process.pdf
description: |
In this Talk, I will explain how the LLVM release process works. How fixes are
created, staged, tested, and reviewed to be included in a release and how community
members can get involved and help improve future releases of LLVM.
- title: "'-fbounds-safety': Enforcing bounds safety for production C code"
speaker: Yeoul Na, Apple
video_url: https://youtu.be/RK9bfrsMdAM
slides_url: https://llvm.org/devmtg/2023-05/slides/TechnicalTalks-May11/01-Na-fbounds-safety.pdf
description: |
In this talk we will describe "-fbounds-safety", a new language extension
implemented in Clang that brings bounds safety to the C language. The language extension
addresses multiple of the practical challenges that have made existing approaches to safer
C dialects difficult to adopt. Our approach facilitates incremental adoption by preserving
source compatibility with standard C and preserving ABI-compatibility with C binaries. It
also minimizes adoption effort by reconciling wide pointers (a.k.a. "fat" pointers) with
ABI-preserving bounds annotations. "-fbounds-safety" has been adopted on millions of lines
of production C code and proven to work in an industrial setting.
112 changes: 112 additions & 0 deletions data/devmtg/2023-05/lightning_talks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
lightning_talks:

- title: "LLVM IR as an Embedded Domain-Specific Language"
speaker: "Nikita Baksalyar"
video_url: ""
slides_url: ""
description: |
This lightning talk will demonstrate an alternative way of using the LLVM API. We
will develop a simple domain-specific language using metaprogramming techniques and see
how it simplifies code and reduces boilerplate.
- title: "Using MLIR for Dalvik Bytecode Analysis"
speaker: "Eduardo Blázquez, University Carlos III of Madrid"
video_url: "https://youtu.be/hfqOivYdD40"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/01-Eduardo-EuroLLVM2023.pdf"
description: |
Using intermediate representations allows analysts to write optimizations and code
analysis passes easier than parsing binary or bytecode directly. Kunai is a library
intended for static analysis of dalvik bytecode, in a newer version of the library, the
idea is to use the capabilities and possibilities offered by MLIR, writing a new dialect
centered on Dalvik instructions.
- title: "Spot the Difference with LLVM-FLOW: an open-source interactive visualization tool for comparing IR CFGs"
speaker: "Jinmyoung Lee, KC Machine Learning Lab"
video_url: "https://youtu.be/bCwteA-9mSs"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/08-Lee-LLVMFlow.pdf"
description: |
One way to understand and debug IR optimization process is to visualize Control Flow
Graphs (CFGs) before and after optimization and compare them. However, since the CFGs can
be drastically different, comparing these two graphs is a challenging task. LLVM-FLOW
(https://llvmflow.kc-ml2.com/), an open-source interactive CFG visualization web app, is
developed to ease the difficulty by highlighting the same components in two graphs. By
clicking the highlighted node, you can easily find the corresponding node in another
graph. LLVM-FLOW is a useful tool for LLVM experts to understand the IR flow when writing
a custom pass, as well as for LLVM newcomers to study the IR pattern's behavior.
- title: "Leveraging MLIR for Better SYCL Compilation"
speaker: "Victor Lomüller, Codeplay Software"
video_url: "https://youtu.be/UOOPFpojGN8"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/02-Lomuller-SYCL-MLIR.pdf"
description: |
SYCL is an open standard programming model for heterogeneous device programming,
based on C++. Similar to optimizing C++ compilers, SYCL compilers would therefore also
profit from a more suitable high-level representation for optimization. This talk presents
first results on our investigation on how MLIR can be leveraged to improve SYCL
compilation flows and optimizations.
- title: "Arm/AArch64 Embedded Development with LLD : What’s New"
speaker: "Amilendra Kodithuwakku, Arm Limited"
video_url: "https://youtu.be/cJCr4XqFmFY"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/03-Amilendra-Arm-AArch64-EmbeddedDevelopment-with-LLD.pdf"
description: |
Arm Limited has been continuously adding LLD support for embedded development on
Arm/AArch64 targets. This lightning talk will be a short explanation of recently added
features. 1) Armv8-M Security Extensions, also known as, Cortex-M Security Extensions
(CMSE) 2) AArch64 Big Endian Support
- title: "Using automated tests to tune the -Og pipeline"
speaker: "Stephen Livermore-Tozer, SN Systems (Sony Interactive Entertainment)"
video_url: "https://youtu.be/f1uHy-ukucc"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/04-Tozer-UsingAutomatedTestsToTuneOgSlides.pdf"
description: |
In clang, the -Og flag is intended to run optimizations that will not significantly reduce
the quality of the program's debug information. Rather than making informed decisions
about which optimizations will preserve debug info, this flag currently uses the -O1
pipeline, to run a few optimizations and hope that debug info will not be significantly
affected. This is due to the lack of useful data about how well the various optimization
passes in LLVM preserve debug info. In this talk I explain how we at Sony have attempted
to solve this problem using Dexter, a tool for testing debug info quality, in an automated
test pipeline to empirically explore different pipeline designs to find a fast and
debuggable -Og pipeline.
- title: "Buddy-CAAS: Compiler As A Service for MLIR"
speaker: "Hongbin Zhang, Institute of Software Chinese Academy of Sciences"
video_url: "https://youtu.be/f7USv-oAtvI"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/05-Zhang-Buddy-CAAS-CompilerAs-AService-forMLIR.pdf"
description: |
This talk will introduce the Buddy-CAAS, Buddy Compiler As A Service for MLIR. In
practice, debugging and configuring an MLIR pass pipeline is always time-consuming, and
there are no good aid tools. In order to improve the efficiency of compiler developers, we
implemented an online platform called Buddy-CAAS (https://buddy.isrc.ac.cn/). Our platform
allows MLIR developers to configure the pass pipeline, view the intermediate products, and
execute on a specific backend through an emulator. We are also integrating more features
on our platform to power the MLIR ecosystem.
- title: "llvm-buildmark - observations, tips, and tricks on reducing LLVM build times"
speaker: "Alex Bradbury, Igalia"
video_url: "https://youtu.be/ka1wehtGQ-4"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/06-Bradbury-llvm-buildmark.pdf"
description: |
This talk provides a series of statistics on LLVM build times (both incremental and
in a simulation of common edit-compile-test cycles) using a simple script that aims to
provide a common baseline statistic. We'll look at some figures across real-world
hardware, how LLVM build performance has changed over time, and the impact of various
options (e.g. -DBUILD_SHARED_LIBS=True, -DLLVM_USE_SPLIT_DWARF=True, GCC vs Clang, lld vs
ld.{bfd,gold} and so on).
- title: "Lock Coarsening optimizations for loops in Java"
speaker: "Anna Thomas, Azul Systems"
video_url: "https://youtu.be/IpGqTq8cVKw"
slides_url: "https://llvm.org/devmtg/2023-05/slides/Lightning-Talks/07-Thomas-LockOpts.pdf"
description: |
This talk will focus on lock optimizations done for loops in Java by Falcon, Azul’s LLVM
based JIT compiler. Synchronization is one the basic techniques that guarantee correctness
in parallel execution. This is implemented using monitors in Java. Monitor acquires are
expensive CPU operations, which also block various loop and reordering compiler
optimizations. We will talk about two specific loop optimizations done for lock coarsening
and the benefits it brings. For both these techniques, we introduced loop chunking in LLVM
as a mechanism to coarsen locks over. We will go over the legality and cost model aspects
as well.
70 changes: 70 additions & 0 deletions data/devmtg/2023-05/posters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
posters:
- title: "Automatic Translation of C++ to Rust"
speaker: "Henrique Preto, ULisboa - Instituto Superior Técnico"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/02-Preto-AutomaticTranslationCPlusPlus-Rust.pdf"
description: |
Memory safety bugs account for 70% of the security vulnerabilities found in major
Microsoft and Google projects. C++, while not memory safe, is an efficient language
commonly used to implement critical systems software. However, Rust is a memory-safe
programming language that offers comparable performance to C++. Still, manually rewriting
existing C++ codebases in Rust is not practical. This work presents a source-to-source
compiler built with Clang that translates C++ code to safe Rust, automatically making the
software safer without losing performance and efficiency.
- title: "A sustainable approach to have vector predication in the Loop Vectorizer"
speaker: "Lorenzo Albano, Barcelona Supercomputing Center"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/01-Albano-VectorPredictionPoster.pdf"
description: |
A number of vector ISAs, like the RISC-V Vector Extension, have support for vector length
and predication. Vector Predication provides us intrinscis to express operations that map
well to these ISAs. However, the Loop Vectorizer still does not make use of them. At BSC
we extended the Loop Vectorizer so it can use Vector Predication intrinsics but the amount
of duplication makes us reluctant to upstream it. In this poster we present an alternative
that has less impact to the Loop Vectorizer and a new pass that propagates the vector
length and mask to the vectorised code.
- title: "Performance Analysis of Undefined Behavior Optimizations"
speaker: "Lucian Popescu, Politehnica University of Bucharest"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/05-Popescu-PerformanceImpactOfExploitingUndefinedBehavior.pdf"
description: |
State-of-the-art compilers, such as Clang/LLVM, use undefined behavior (UB) to issue
optimizations. We present the impact of UB optimizations for a diverse set of application
categories to discover what are UBs that are most performance critical.
- title: "Static Analysis for C++ Rust-Like Lifetime Annotations "
speaker: "Susana Monteiro, INESC-ID, IST ULisboa"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/06-Monteiro-StaticAnalysisForCPlusPlus-Rust-Like-LifetimeAnnotations.pdf"
description: |
Memory safety vulnerabilities can be addressed by incrementally migrating from
memory-unsafe languages like C++ to memory-safe languages, namely Rust. However, this
involves some challenges, in particular regarding Rust’s concept of lifetimes, which
does not exist in C++. Recently, Clang introduced Rust-like lifetime annotations to
approach this challenge, but it is essential to ensure their correctness. Our work focuses
on developing a static analyzer to verify the correctness of C++ lifetime annotations,
consequently addressing memory-safety vulnerabilities.
- title: "Leveraging MLIR for Better SYCL Compilation"
speaker: "Victor Lomüller, Codeplay Software"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/04-Lomuller-LeveragingMLIR-forBetterSYCLCompilation.pdf"
description: |
SYCL is an open standard programming model for heterogeneous device programming,
based on C++. Similar to optimizing C++ compilers, SYCL compilers would therefore also
profit from a more suitable high-level representation for optimization. This talk presents
first results on our investigation on how MLIR can be leveraged to improve SYCL
compilation flows and optimizations.
- title: "Forcefully Embedding MLIR into Python"
speaker: "George Mitenkov, ETH Zurich"
poster_url: "https://llvm.org/devmtg/2023-05/slides/Posters/03-Mitenkov-ForcefullyEmbedding%20MLIR-intoPython.pdf"
description: |
While MLIR provides its users with the infrastructure to create new dialects,
lowerings and rewrites to support efficient domain-specific and ML workload compilation,
the front-ends that generate MLIR have not been fully explored. In particular, it is
common to either write SSA-based MLIR code in high-level dialects, or re-implement the
code generation flow from the source language to MLIR. Both approaches are not developer-
friendly because they require maintenance and significant development effort. In this
poster session, we present how MLIR can be embedded into Python, allowing one to generate
non-SSA Pythonic front-ends based on the dialect specifications. Moreover, we discuss how
the front-ends can be statically compiled to SSA-based MLIR or even dynamically executed.
We evaluate our work by presenting examples of front-ends for zero-knowledge proof or
RISC-V compilers.
Loading

0 comments on commit 694b515

Please sign in to comment.