-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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
1 parent
018e156
commit 694b515
Showing
9 changed files
with
909 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
Oops, something went wrong.