<?xml version='1.0' encoding='utf-8' ?>
<!-- Made with love by pretalx v2026.1.0.dev0. -->
<schedule>
    <generator name="pretalx" version="2026.1.0.dev0" />
    <version>1.4</version>
    <conference>
        <title>GNU Tools Cauldron 2025</title>
        <acronym>opo25</acronym>
        <start>2025-09-26</start>
        <end>2025-09-28</end>
        <days>3</days>
        <timeslot_duration>00:05</timeslot_duration>
        <base_url>https://conf.gnu-tools-cauldron.org</base_url>
        
        <time_zone_name>Portugal</time_zone_name>
        
        
        <track name="Talks" slug="5932-talks"  color="#00e01f" />
        
    </conference>
    <day index='1' date='2025-09-26' start='2025-09-26T04:00:00+01:00' end='2025-09-27T03:59:00+01:00'>
        <room name='Main auditorium (400)' guid='2a6dd248-d9b2-5d3b-9105-3caccef49284'>
            <event guid='9b1b2474-d1f9-56df-af53-c7d68670420a' id='78079' code='FN7FKL'>
                <room>Main auditorium (400)</room>
                <title>Lane support in GDB for debugging GPUs</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-26T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>GPU threads operate in SIMT/SIMD (Single Instruction Multiple Thread / Single Instruction Multiple Data) mode: They are composed of &quot;lanes&quot; that execute the same instruction together in lock-step manner, but operate on different data.  To show the execution state to the user, a debugger would need to be aware of lanes, so that program objects (e.g. local variables, function arguments, displayed expressions, etc.) are evaluated not only in a thread and call frame context, but also the lane context.  In GNU Tools Cauldron 2024, a BoF session was organized jointly by AMD and Intel, who have downstream debuggers that implement lane support.  Since then the developer teams of the two vendors compiled a common document that includes their suggested extensions to GDB commands and the user interface to introduce unified lane support to GDB.  This session presents their consensus and opens it up for discussion.</abstract>
                <slug>opo25-78079-lane-support-in-gdb-for-debugging-gpus</slug>
                <track></track>
                
                <persons>
                    <person id='79134'>Baris Aktemur</person><person id='79139'>Lancelot Six</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/kRvXUa5JHzQ?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/FN7FKL/resources/GNU_Cauldron_-_Lane__AWBVOpQ.pdf">Lane support in GDB</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/FN7FKL/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/FN7FKL/feedback/</feedback_url>
            </event>
            <event guid='39201808-1fab-53df-afbf-94efcee5c81b' id='75646' code='FZTXVZ'>
                <room>Main auditorium (400)</room>
                <title>AArch64 performance work</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>This talk will go through some of the in progress and planned AArch64 performance work for GCC 16 and GCC 17.  Giving the community and partners a heads up on what to expect from Arm.</abstract>
                <slug>opo25-75646-aarch64-performance-work</slug>
                <track></track>
                
                <persons>
                    <person id='74774'>Tamar Christina</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/Vo5T7XtoWDA?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/FZTXVZ/resources/AArch64_Performance__FURFOI9.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/FZTXVZ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/FZTXVZ/feedback/</feedback_url>
            </event>
            <event guid='9adef725-01e5-50c6-8012-e694f7608b11' id='78082' code='Y7NMHZ'>
                <room>Main auditorium (400)</room>
                <title>malloc: past, present and future</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>In this talk I will discuss recent improvements to GLIBC malloc, how it compares with other popular allocators, and what we could do to make malloc better - not only faster, but also safer, more maintainable and use less memory.</abstract>
                <slug>opo25-78082-malloc-past-present-and-future</slug>
                <track></track>
                
                <persons>
                    <person id='75330'>Wilco Dijkstra</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/_soyc5a5asQ?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/Y7NMHZ/resources/Malloc_Past_Present_vB6wZ4t.pptx">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/Y7NMHZ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/Y7NMHZ/feedback/</feedback_url>
            </event>
            <event guid='a00dc1ca-aea4-511f-b93a-8e7f4f608e45' id='75504' code='SCJ9LH'>
                <room>Main auditorium (400)</room>
                <title>Vectorizer for Beginners</title>
                <subtitle></subtitle>
                <type>Tutorial</type>
                <date>2025-09-26T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:30</duration>
                <abstract>This presentation is aimed at wannabe contributors to GCCs vectorizer. It should give an elaborate overview on the innards of the vectorizer, from user up to target interaction.  After a thorough overview on the parts of the vectorizer we follow examples from loop and basic-block vectorization through the vectorizers code base, highlighting differences and commonalities.</abstract>
                <slug>opo25-75504-vectorizer-for-beginners</slug>
                <track></track>
                
                <persons>
                    <person id='74663'>Richard Biener</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/C6Eu7tW02Gc?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/SCJ9LH/resources/GCC_Vectorizer_for_B_PkWF4bY.pdf">Slides from the talk</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SCJ9LH/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SCJ9LH/feedback/</feedback_url>
            </event>
            <event guid='f43b5a3c-0af4-5477-af1c-84fb940ad6ae' id='80727' code='RUTTG9'>
                <room>Main auditorium (400)</room>
                <title>GCC Machine Descriptions for the Confused</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>01:00</duration>
                <abstract>GCC machine descriptions are straightforward to implement if someone has been involved in gcc development for a while. GCC Internals is a comprehensive resource but it assumes/requires prior knowledge. As a relative newcomer to the project (RISC-V backend) I&apos;ve struggled with MD patterns (and still do). The LISPy syntax doesn&apos;t initially help either. This is my attempt to collect my learning of the last few years. If you don&apos;t know what a &quot;Bridge&quot; pattern is or confused between define_split and define_insn_and_split, this is the talk for you !</abstract>
                <slug>opo25-80727-gcc-machine-descriptions-for-the-confused</slug>
                <track></track>
                
                <persons>
                    <person id='82235'>Vineet Gupta</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/oOIVV9qlz2I">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/RUTTG9/resources/GCC_Machine_Descript_9hCHRpf.pdf">GNU Cauldron 2025: GCC Machine Descriptions for the Confused</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/RUTTG9/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/RUTTG9/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B032 (80)' guid='3d3ddecb-2ccf-55f6-b4cd-b24052ab285a'>
            <event guid='b54a7e78-6be9-558d-af5c-00626a836876' id='78288' code='YV7F3H'>
                <room>Auditorium B032 (80)</room>
                <title>AutoFDO - recent improvements</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>I will discuss recent progress on AutoFDO. This feature was originally contributed by Google in 2014 and allows to use of profiles generated by low-overhead profiling (perf) to guide optimisation. I will discuss work needed to make AutoFDO to cooperate with link-time optimisation and the changes needed to modernise the infrastructure for the current GCC.</abstract>
                <slug>opo25-78288-autofdo-recent-improvements</slug>
                <track></track>
                
                <persons>
                    <person id='79373'>jan Hubi&#269;ka</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/E-TGLR_w0I0?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/YV7F3H/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/YV7F3H/feedback/</feedback_url>
            </event>
            <event guid='0b85ff9f-0073-5e7c-ae0c-afd1a2be30f9' id='81905' code='3PGTEY'>
                <room>Auditorium B032 (80)</room>
                <title>Source-to-Source Compilation for Hardware/Software Codesign</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>Critical performance regions of applications are often improved by offloading them onto specialized accelerators. This process requires selecting an adequate region of the program, subject to any eventual data dependencies, communication overheads, and the nature of the computations done in that region. Due to the complexity of this problem and the high variability of downstream vendor tools, an automated approach to this problem invites the use of a source-to-source compiler as the first stage of the compilation pipeline, preserving the source code&apos;s readability and retargetability. To this end, we propose using the Clava C/C++ source-to-source compiler to take in any C or C++ application, find and optimize adequate regions for offloading, and output those regions as separate translation units. By leveraging Clang&apos;s Abstract Syntax Tree (AST), Clava allows for a developer to write highly composable extensions that perform analysis and transformations over that AST, using modern scripting languages such as JavaScript and TypeScript. We demonstrate an entire source-to-source compilation flow for accelerating a C/C++ application, including extensions ranging from source code transformations such as function outlining and struct flattening; generation of a task graph representation of any C/C++ application; and selecting and extracting code regions for different types of accelerators, including the automatic generation of the communication layer using different APIs.</abstract>
                <slug>opo25-81905-source-to-source-compilation-for-hardware-software-codesign</slug>
                <track></track>
                
                <persons>
                    <person id='83391'>Tiago Santos</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://github.com/specs-feup/gnu-tools-cauldron-2025-demo">Reproducible demo</link>
                
                    <link href="https://youtu.be/EIBQIG5A9m8">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/3PGTEY/resources/GNU_Tools_Cauldron__MTLcuks.pptx">Presentation slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/3PGTEY/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/3PGTEY/feedback/</feedback_url>
            </event>
            <event guid='d415c461-d6bf-5314-9c16-e5943c3f3143' id='75043' code='XYMAKN'>
                <room>Auditorium B032 (80)</room>
                <title>Function multi-versioning developments, and goals for the future</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-26T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>00:15</duration>
                <abstract>Its very common that CPU&apos;s with fancy extensions and features overwhelmingly run code that is compiled for a baseline arch without any of the features enabled. Function multi versioning is a compiler framework for GCC generating multiple versions of a function, and dispatching the correct version according to the host system at load time. This talk will discuss recent developments, and the dreams for the future.</abstract>
                <slug>opo25-75043-function-multi-versioning-developments-and-goals-for-the-future</slug>
                <track></track>
                
                <persons>
                    <person id='74657'>Alfie Richards</person>
                </persons>
                <language>en</language>
                <description>We&apos;ll talk through the current state of function multi versioning, why we view it as important, and why it needs help for the wider GCC community. Then will discuss what our ambitions/hopes are for the future and try get some feedback from others in the community.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/iB5wayUK93A?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/XYMAKN/resources/FMV-Cauldron-25_VcqdlRP.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/XYMAKN/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/XYMAKN/feedback/</feedback_url>
            </event>
            <event guid='198216d8-98ad-59b0-82a2-a4dedddb7a8a' id='75627' code='MA8Z7C'>
                <room>Auditorium B032 (80)</room>
                <title>Using FFmpeg as Benchmark to verify performance of GCC and LLVM</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-26T11:45:00+01:00</date>
                <start>11:45</start>
                <duration>00:15</duration>
                <abstract>Compare currently GCC and LLVM performance difference using FFmpeg as benchmark.
Tested on a RISC-V develop board, contains vectorization performance improvement results.</abstract>
                <slug>opo25-75627-using-ffmpeg-as-benchmark-to-verify-performance-of-gcc-and-llvm</slug>
                <track></track>
                
                <persons>
                    <person id='75153'>Jiawei Chen</person>
                </persons>
                <language>en</language>
                <description>We will introduce how to use FFmpeg as a benchmark, to compare GCC and LLVM
performance on it with different situation.

The test is mainly based on the RISC-V development board Muse Pi Pro with RVV1.0 feature. 
In addition, some problems that need to be solved will also be briefly introduced.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/BGns00WdfMQ?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/MA8Z7C/resources/Using_FFmpeg_as_Ben_VvCyx1d.pptx">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/MA8Z7C/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/MA8Z7C/feedback/</feedback_url>
            </event>
            <event guid='142bb34b-142b-5e66-b9f9-95648a767709' id='80833' code='VFLCJJ'>
                <room>Auditorium B032 (80)</room>
                <title>Measuring the health of the GCC community</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-26T12:00:00+01:00</date>
                <start>12:00</start>
                <duration>00:15</duration>
                <abstract>In this short talk, I look at how data mining of repository activity and mailing lists can give insight to the health of a community project. The talk offers no prescriptions, its purpose is to share techniques that may be useful to the community.</abstract>
                <slug>opo25-80833-measuring-the-health-of-the-gcc-community</slug>
                <track></track>
                
                <persons>
                    <person id='82345'>Jeremy Bennett</person>
                </persons>
                <language>en</language>
                <description>All the interactions of an open source project are publicly visible.  This includes commits to repositories, activity on bug trackers and interactions on mailing lists.  In this talk I will show how this data can be mined to measure the health of community.  Which backends are healthy, and which are languishing, how large are the groups maintaining different parts of the project.  We can even start to consider factors such as how inclusive our community is.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/lN-Y96J6Sm0">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/VFLCJJ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/VFLCJJ/feedback/</feedback_url>
            </event>
            <event guid='8e93b4fb-ef2e-5505-87cc-0828798ed238' id='79262' code='NM7MDT'>
                <room>Auditorium B032 (80)</room>
                <title>Comparative Analysis of GCC Codegen for AArch64 and RISC-V</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-26T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>This contribution explores possible improvements in GCC code generation for RISC-V. We collected dynamic instruction counts from selected SPEC CPU 2017 benchmarks and compared the results with AArch64. Findings reveal that prominent compiler weaknesses include missing instruction patterns, extra move instructions, unused load offsets, and functionally dead code. Additionally, vectorising library functions, like memset and mathematical operations, are crucial for maximising RISC-V efficiency.</abstract>
                <slug>opo25-79262-comparative-analysis-of-gcc-codegen-for-aarch64-and-risc-v</slug>
                <track></track>
                <logo>/media/opo25/submissions/NM7MDT/rise_logo_zWNrz27.svg</logo>
                <persons>
                    <person id='80205'>Paul-Antoine Arras</person>
                </persons>
                <language>en</language>
                <description>This work has been carried out as a collaboration between BayLibre and Rivos Inc., and funded by the RISE Project.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://docs.google.com/presentation/d/1F8WXCLDgybm9qh6wegTfZMm-7iGirLgpFSfQdPjmpkg/edit?usp=sharing">Slides (GDrive)</link>
                
                    <link href="https://youtu.be/vtV696SszsY?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/NM7MDT/resources/Comparative_Analysis_5bJOkCa.pdf">Slides (PDF)</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/NM7MDT/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/NM7MDT/feedback/</feedback_url>
            </event>
            <event guid='73125d0a-3319-5c0d-be49-b6e862c0615a' id='78154' code='FHSXQA'>
                <room>Auditorium B032 (80)</room>
                <title>GCC Google Summer of Code BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-26T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>GCC has participated in the Google Summer of Code (GSoC) program since 2006 (with one year gap) but for a long time we have not shared experiences, best practices and ideas for improvements in some organized form among the mentors and GSoC &quot;org-admins.&quot;  The idea of this BoF is to do exactly that.</abstract>
                <slug>opo25-78154-gcc-google-summer-of-code-bof</slug>
                <track></track>
                
                <persons>
                    <person id='79218'>Martin Jambor</person>
                </persons>
                <language>en</language>
                <description>We may focus on the following bullet points as well as anything that comes up during the BoF.

1. Better selection of candidates.  It occasionally happens that a selected GSoC contributor needs too much hand-holding from their mentor(s) which can lead to decreased willingness of mentors to participate in the program in next years or their outright burn-out.

2. Make contributors engage with the community more.  Often it feels that that accepted contributors are unwilling to ask questions on the mailing list and either communicate just with their mentor(s) in private emails or wait until their next meeting.  This slows projects down and puts the entire guidance burden on the mentor(s) where community would often be able to help.

3. We might want to coordinate more when it comes to evaluations, outlining at least some common criteria for these.  In fact, we may want to be stricter and fail more projects.

4. We should talk about anything that makes mentoring easier and more fun.  

5. We should try to retain more contributors as long(er) term contributors to GCC.  While we have gained a few important long-term community members through the program and some folk stick around for a few months, we should probably try to retain more.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/8RN7Nx7gVWo?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/FHSXQA/resources/mjambor-gsoc_bof-cau_PcBrscg.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/FHSXQA/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/FHSXQA/feedback/</feedback_url>
            </event>
            <event guid='89401986-cbee-5d50-b379-f34cc3c82063' id='80992' code='LQTU3G'>
                <room>Auditorium B032 (80)</room>
                <title>New TLS allactors for glibc</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-26T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>00:30</duration>
                <abstract>This presentation covers a design of a new thread-local storage (TLS) allocator for the GNU C Library (glibc). The goal of this project is to unify the allocation algorithm for initial-exec TLS, global-dynamic TLS, and POSIX thread-specific data (as created by `pthread_key_create`). It unifies ideas that have been circulated within the glibc community for many years.</abstract>
                <slug>opo25-80992-new-tls-allactors-for-glibc</slug>
                <track></track>
                
                <persons>
                    <person id='82462'>Florian Weimer</person>
                </persons>
                <language>en</language>
                <description>In glibc, we currently have two different algorithms for initial-exec TLS allocation, depending on the TCB layout. Global-dynamic TLS uses a completely different, lazy allocation approach. POSIX TSD (`pthread_key_create`) is based on yet another separate algorithm with its own data structures. The proposal is for a new allocator that explicitly keeps track of the gaps between allocations, and use that everywhere. TCB differences will be handled by presenting the gaps available for allocation to the allocator, based on architecture-specific details. Global-dynamic TLS and `pthread_key_create` can use part of the initial-exec TLS area, but will eventually switch to separate slices of TLS memory. These slices follow an exponential growth policy, so only a small number of them will ever be needed, and pointers to these slices can be kept in a fixed-size array directly in the TCB.

The changes will eliminate lazy TLS memory allocation and slow paths from TLS accessor functions.  Memory allocation failures will be reported upfront (at `dlopen` or `pthread_create`), and no longer via process termination. A previous attempt to make similar changes had to be reverted because Address Sanitizer was broken by it, and could not be fixed in time for the release. For this new effort, it should be possible to achieve Address Sanitizer compatibility by using its `malloc` to allocate TLS memory (after detecting that Address Sanitizer is active).</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/JIkS4aLvQPg">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/LQTU3G/resources/tls_z0ToUZm.pdf">glibc TLS allocator slides</attachment>
                
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/LQTU3G/resources/tls_hgvwY9J.tex">glibc TLS allocator slides source code (LaTeX, TikZ)</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/LQTU3G/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/LQTU3G/feedback/</feedback_url>
            </event>
            <event guid='345ee9c9-7bb7-54a3-adc5-1beb1e1ed723' id='80993' code='8NUW3L'>
                <room>Auditorium B032 (80)</room>
                <title>A heap dumper for glibc</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-26T16:30:00+01:00</date>
                <start>16:30</start>
                <duration>00:15</duration>
                <abstract>This session showcases the [glibc heap dumper](https://gitlab.com/fweimer-rh/heapdumper), a tool to obtain information about active memory allocations and `malloc` heap layout from coredumps.</abstract>
                <slug>opo25-80993-a-heap-dumper-for-glibc</slug>
                <track></track>
                
                <persons>
                    <person id='82462'>Florian Weimer</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/BNMs6Z_qFns">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/8NUW3L/resources/heapdumper_x3T08QF.pdf">glibc heap dumper slides</attachment>
                
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/8NUW3L/resources/heapdumper_ygU3Mes.tex">glibc heap dumper slides LaTeX source code</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/8NUW3L/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/8NUW3L/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='I-105 (30)' guid='226da3d6-4ff2-5c4c-b452-e21194a6338f'>
            <event guid='76cffec9-d2ba-53c5-8334-48d2694c9403' id='80827' code='YSGAPE'>
                <room>I-105 (30)</room>
                <title>Building Linux kernel with LTO</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-26T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:15</duration>
                <abstract>We have made progress building Linux kernel with LTO by solving issues with top-level assembly.
This is an overview of how you can build the Linux kernel with LTO today and what are the remaining issues.</abstract>
                <slug>opo25-80827-building-linux-kernel-with-lto</slug>
                <track></track>
                
                <persons>
                    <person id='82339'>Michal Jire&#353;</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/aBrJ6DARTPc">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/YSGAPE/resources/mjires-Cauldron2025_yE9HX3S.pdf">slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/YSGAPE/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/YSGAPE/feedback/</feedback_url>
            </event>
            <event guid='7e677e7c-69e5-5899-94fa-8b11dd78996f' id='75134' code='SBMUWN'>
                <room>I-105 (30)</room>
                <title>Toolchain and Linux kernel</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-26T10:45:00+01:00</date>
                <start>10:45</start>
                <duration>01:30</duration>
                <abstract>Author: Steven Rostedt (Kernel maintainer)
Author: Paul E. McKenney (Kernel maintainer)
Author: Alexei Starovoitov (Kernel maintainer)
Author: Jose E. Marchesi (GNU toolchain)


The Linux kernel, which is by far one of the biggest, more complex and
more important programs around, is (still) mainly built using the GNU
Toolchain.

There is an intimate relationship between toolchain and kernel.

Compiling a huge, complex and specialized program such as the kernel
often implies facing challenging or unusual requirements on the
toolchain side. This includes security related requirements. Also, some
of the toolchain components interface directly with the kernel. In the
case of glibc, it even provides the main visible interface from the
kernel to userland programs. The support for BPF is also mainly Linux
kernel specific.

This relationship benefits both projects. For example, an actively
maintained toolchain can quickly include kernel specific
enhancements. And vice versa, the toolchain benefits from the associated
relevance that makes corporations support its development. It is
certainly not unusual for a feature introduced primarily for kernel
usage to also be very useful to other programs. Examples of this are the
support for patchable function entries, &quot;asm goto&quot;, fentry , and several
security related features.

In order to improve this relationship a Toolchains Track has been
organized for some years now at the Linux PLumbers Conference. The aim
of the track is to fix particular toolchain (both GNU and LLVM) issues
which are of interest to the kernel and, ideally, find and agree on
solutions right away, during the track, making the best use of the
opportunity to discuss the issues live with kernel developers and
maintainers. The LPC toolchains track is proving very useful, although
it is not always easy to bring toolchain hackers there, given it is a
kernel specific conference.

We propose to have a Toolchain and Linux Kernel BoF during Cauldron this
year, with the participation of at least one Linux kernel
maintainer. The goals of the BoF are (a) to discuss about particular
requirements, desired features and on-going developments that are
relevant to the kernel and (b) to gather kernel related
questions/input/feedback from the toolchain developers so we can bring
the issues to the LPC Toolchains Track, which will be held later in the
year after Cauldron.</abstract>
                <slug>opo25-75134-toolchain-and-linux-kernel</slug>
                <track></track>
                
                <persons>
                    <person id='74726'>Jose Marchesi</person><person id='74728'>Paul McKenney</person><person id='75054'>Alexei</person><person id='81264'>Steven Rostedt</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/03FiWIcic_g?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/SBMUWN/resources/GNU_Compiler_Collect_Mddin6s.pdf">Slides for Kernel Recipes 2025 talk by Thomas Schwinge</attachment>
                
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/SBMUWN/resources/btf-inlines_lYkMusm.pdf">Slides for BTF inline from Alan Maguire</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBMUWN/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBMUWN/feedback/</feedback_url>
            </event>
            <event guid='99c10fde-2178-5129-8276-9db682c5d345' id='80005' code='9KJV9X'>
                <room>I-105 (30)</room>
                <title>BPF BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-26T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>In this BoF we will be discussing topics related to the BPF target in the GNU Toolchain.</abstract>
                <slug>opo25-80005-bpf-bof</slug>
                <track></track>
                
                <persons>
                    <person id='74726'>Jose Marchesi</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/DgiEC3qSNKE">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/9KJV9X/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/9KJV9X/feedback/</feedback_url>
            </event>
            <event guid='8e5bc4ad-14b3-597d-b964-d0bad7b1ec03' id='80278' code='LZHWTK'>
                <room>I-105 (30)</room>
                <title>Introduction to upstream patch review in GCC</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-26T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>01:00</duration>
                <abstract>Patch review bandwidth has been identified as a bottleneck for GCC development many times over the years. We have taken steps to address it, such as appointing people in reviewer roles. But we can do more to reduce the friction for contributors to try patch review.
I will present some motivation to start reviewing patches and address common perceived barriers to doing so.
One take away from advocating for upstream patch review among colleagues is that there are no good set of guidelines to refer to when reviewing patches. In this talk I propose a set of baseline guidelines for patch review for the GCC project that can act as a starting point for budding reviewers. These can include technical design conventions that we want to maintain, common mistakes to look out for, testing and benchmarking considerations, commit message reviews, deployment concerns, and more high-level, social etiquette and procedural considerations.
I am interested in feedback on these guidelines and ideas on how and where we may want to advertise them for newcomers.</abstract>
                <slug>opo25-80278-introduction-to-upstream-patch-review-in-gcc</slug>
                <track></track>
                
                <persons>
                    <person id='80349'>Kyrill Tkachov</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/hxkrtxVAHlU">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/LZHWTK/resources/Patch-review-GNU-ca_Z9ca6Ne.pptx">Introduction to upstream patch review in GCC</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/LZHWTK/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/LZHWTK/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='2' date='2025-09-27' start='2025-09-27T04:00:00+01:00' end='2025-09-28T03:59:00+01:00'>
        <room name='Auditorium B032 (80)' guid='3d3ddecb-2ccf-55f6-b4cd-b24052ab285a'>
            <event guid='6a883eec-895a-5396-8847-fa8354b6dd60' id='80784' code='7VGPWL'>
                <room>Auditorium B032 (80)</room>
                <title>ABI change analysis in Libabigail 2.8</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>This presentation exposes the improvements of the Libabigail framework
that occurred since the end of the 2024, across the 2.7 and 2.8
releases.

As many of those improvements were about improving the signal to noise
ratio of ABI change reports, the talk presents the internals of the
middle-end and how it relates to categorizing ABI changes in such a
way that the back-ends that generate ABI change reports can be better
equipped to lower the rate of false positives.

Besides the deep dive in the middle-end internals, the talk walks
through the user-facing improvements of the tools written using the
framework in the 2.7 and 2.8 releases.

The talk ends with some considerations about future perspectives of
improvements that still needs to be addressed.</abstract>
                <slug>opo25-80784-abi-change-analysis-in-libabigail-2-8</slug>
                <track></track>
                
                <persons>
                    <person id='82290'>Dodji Seketeli</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/8KpPfdSH90U">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/7VGPWL/resources/abi-change-analysis-_WjQu74h.pdf">PDF of the presentation</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/7VGPWL/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/7VGPWL/feedback/</feedback_url>
            </event>
            <event guid='bf0d2a80-ceeb-56e0-985e-573e8db92e69' id='79953' code='FNC8SK'>
                <room>Auditorium B032 (80)</room>
                <title>Time-traveling through the GCC PR database and testsuite</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-27T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Tasked with identifying safer optimization flags and GCC releases to use,
we&apos;ve developed techniques to extract information from the PR database
and from the testsuite.  We&apos;ve found that the growing PR density over
time is not intuitively correlated with quality, but that running
&quot;future&quot; torture testsuites with extra optimization flags on &quot;past&quot;
releases can provide useful insights about relevant points of
instability.

Slides at https://www.lx.oliva.nom.br/slides/timetravel.en.pdf</abstract>
                <slug>opo25-79953-time-traveling-through-the-gcc-pr-database-and-testsuite</slug>
                <track></track>
                
                <persons>
                    <person id='80831'>Alexandre Oliva</person>
                </persons>
                <language>en</language>
                <description>Though higher PRs/quarter, /month, /week, /day could intuitively
correlate with higher instability, we find that it correlates with
stricter scrutiny: it amounts to more eyes collaborating to shake bugs
out, rather than more bugs being introduced.  Indeed, PR frequency has
been on the rise, and that correlates with higher rather than lower
stability.

We&apos;ve resorted to a time-traveling technique to identify (un)safer
optimizations: adding optimization-disabling flags to torture options of
newer testsuites, and running them with older compiler releases, so as
to identify flags that most avoid problems that would only be uncovered
in the future.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/PvnP2XGuR6Q">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/FNC8SK/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/FNC8SK/feedback/</feedback_url>
            </event>
            <event guid='8da5456a-df94-5e85-b03d-01e9bffa5624' id='80741' code='YZTJNG'>
                <room>Auditorium B032 (80)</room>
                <title>Simplifying Custom Instruction Integration in GCC for RISC-V processors</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>01:00</duration>
                <abstract>How can users add new instructions without knowledge on GCC internals?

Integrating custom instructions into a RISC-V processor typically requires deep familiarity with GCC internals, particularly its RTL and backend architecture. This talk presents APEX, an approach for defining custom RISC-V instructions in GCC directly from C using pragmas, or assembly source code. Rather than modifying the compiler internals directly, users can define new operations using a simple &quot;#pragma&quot; and a function declaration, which are then parsed by the front end and transformed into GCC&#8217;s internal RTL (RTX) representation. This approach eliminates the need for manual backend modifications, making custom instruction support more accessible to users.

We will explore the APEX pipeline in detail - from parsing APEX input C-code to instruction emission and encoding in Binutils, understand how APEX instructions are handled by the assembler, disassembler/debugger.

This presentation targets compiler engineers, toolchain maintainers and hardware architects interested in extending RISC-V with domain-specific instructions while working within the GNU ecosystem. APEX reduces the need to dig into GCC internals, allowing contributors to prototype, experiment, and upstream new ideas with less effort.</abstract>
                <slug>opo25-80741-simplifying-custom-instruction-integration-in-gcc-for-risc-v-processors</slug>
                <track></track>
                
                <persons>
                    <person id='82287'>Luis Silva</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/jHfxkAN3Qtw">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/YZTJNG/resources/luis-silva-gnu-cauld_k8vePaO.pdf">slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/YZTJNG/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/YZTJNG/feedback/</feedback_url>
            </event>
            <event guid='f0692487-7445-5c54-94c5-bf6b75e4408b' id='80873' code='YTTYJE'>
                <room>Auditorium B032 (80)</room>
                <title>RISC-V Unified Database: Automating Extension Integration Across Binutils, QEMU, and Beyond</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-27T12:00:00+01:00</date>
                <start>12:00</start>
                <duration>00:20</duration>
                <abstract>RISC-V&apos;s rapid growth to more than 100 extensions and 1000 instructions creates maintenance challenges across the ecosystem. Tools like Binutils, QEMU, and the Linux kernel each maintain separate definitions for standard and custom instructions and extensions, leading to fragmentation and repetitive maintenance burden.
 
The RISC-V Unified Database (UDB) is a machine-readable source of truth for instructions and CSRs, containing ~90% of RISC-V instructions. We built a framework that continuously validates UDB against Binutils data and ensures both stay in sync. Moreover, we created a generator that converts UDB data into Binutils and QEMU definitions, reducing effort for developers porting new or custom extensions.
 
This talk will demonstrate UDB&apos;s toolchain verification, cross-validation results, and how developers can leverage UDB to port new RISC-V extensions into the GNU toolchain.</abstract>
                <slug>opo25-80873-risc-v-unified-database-automating-extension-integration-across-binutils-qemu-and-beyond</slug>
                <track></track>
                
                <persons>
                    <person id='82388'>Afonso Oliveira</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://github.com/riscv-software-src/riscv-unified-db">UDB Repo</link>
                
                    <link href="https://youtu.be/6r-PobBq_tc">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/YTTYJE/resources/Cauldron_UDB_2025_BiqrohL.pdf">Talk Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/YTTYJE/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/YTTYJE/feedback/</feedback_url>
            </event>
            <event guid='1d3f282e-c6b0-513f-9ff3-f6a51f1261ec' id='80847' code='XL3XQD'>
                <room>Auditorium B032 (80)</room>
                <title>profiledb: optimize your distro/builds with crowdsourced profile corpus</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-27T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>00:30</duration>
                <abstract>Profile-guided optimizations are not new, but also not that popular.  Why?  Maybe because your build workflow can&apos;t easily include profile gathering - and every time.  What if we could share profile data with each other, so you could take advantage of public crowdsourcing?  What if you could easily contribute back your workload profiles?  What if we can integrate this into distro build systems?  Let&apos;s try with profiledb: a bit of glue between git, profilers, and linkers.</abstract>
                <slug>opo25-80847-profiledb-optimize-your-distro-builds-with-crowdsourced-profile-corpus</slug>
                <track></track>
                
                <persons>
                    <person id='82363'>Frank Ch. Eigler</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/um319CZFuTg">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/XL3XQD/resources/profiledb_Eil0Ouw.pdf">slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/XL3XQD/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/XL3XQD/feedback/</feedback_url>
            </event>
            <event guid='b2d8107d-cd31-5d7f-8b55-29a47d8e80cc' id='80308' code='V7QCDW'>
                <room>Auditorium B032 (80)</room>
                <title>Modula-2: New wide set implementation, performance results and direction of travel</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-27T14:00:00+01:00</date>
                <start>14:00</start>
                <duration>00:30</duration>
                <abstract>This session will discuss the performance benchmark results of the new wide set implementation in gm2.  It will also report on the approach taken to implement this data type and how this technique will be used to implement M2R10 and ISO generics.</abstract>
                <slug>opo25-80308-modula-2-new-wide-set-implementation-performance-results-and-direction-of-travel</slug>
                <track></track>
                
                <persons>
                    <person id='82203'>Gaius Mulley</person>
                </persons>
                <language>en</language>
                <description>This talk presents the performance results for the new wideset implemented in gm2.   The technique follows the design shown in the M2R10 proposed standard, namely using a module to contain the operators for a base datatype. 

The talk will conclude by discussing the M2R10 pragmas and how they will be used to enable module inlining and Modula-2 dialect choice.  Therefore allowing mixed dialect projects to be whole program optimized and potentially more base type operators could be implemented as an inline module.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/rSkV-p8RdF4">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/V7QCDW/resources/gm2-wideset-directio_nLd10gU.pdf">Slides used during presentation</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/V7QCDW/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/V7QCDW/feedback/</feedback_url>
            </event>
            <event guid='f03fe60b-9310-5fed-a479-5fcca42d1f7a' id='80825' code='89QXSR'>
                <room>Auditorium B032 (80)</room>
                <title>RISC-V Auto-Vectorization 101</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>Introduction to RISC-V auto vectorization.  Basic building blocks, supported features, concepts, idiosyncrasies/quirks and more.  Overview of what has been done, what&apos;s currently cooking and what&apos;s planned for the future.
Topics include, riscv vector modes and patterns, else operands, vector-vector and vector-scalar variants, vsetvl placement etc.</abstract>
                <slug>opo25-80825-risc-v-auto-vectorization-101</slug>
                <track></track>
                
                <persons>
                    <person id='82338'>Robin Dapp</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/a4kmB1fOEJU">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/89QXSR/resources/rvv-101-slides_tWsXOIr.pdf">RVV 101 Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/89QXSR/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/89QXSR/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B001 (170)' guid='6ee287ca-f06b-5443-9c91-47b578161d34'>
            <event guid='7475f8cd-08cb-5176-9365-da9533c2c521' id='81904' code='3URW7F'>
                <room>Auditorium B001 (170)</room>
                <title>BoF on GCC and AI</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>The proposal is for a BoF on GCC and AI, with the goal of opening up discussion on:

- Current and emerging use cases where GCC intersects with AI/ML workloads, including compiler optimisations for AI kernels.
- Challenges in supporting AI accelerators and heterogeneous compute through GCC.
- Open questions for the community: to what extent should GCC evolve in this area, and where should external tooling take the lead?

The idea is to bring together community members interested in this intersection of GCC and AI, share experiences, and identify where GCC could play a meaningful role.</abstract>
                <slug>opo25-81904-bof-on-gcc-and-ai</slug>
                <track></track>
                
                <persons>
                    <person id='82345'>Jeremy Bennett</person><person id='83386'>Pietra Ferreira</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/Gj4QWibrTUg">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/3URW7F/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/3URW7F/feedback/</feedback_url>
            </event>
            <event guid='b3dda894-c4f2-521f-a527-c6b1c894a60a' id='79269' code='EKDPEH'>
                <room>Auditorium B001 (170)</room>
                <title>Parallel Computing, Offloading, OpenMP and OpenACC</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>An update of the current status of OpenMP, OpenACC and offloading in GCC, including what has been achieved last year. A few highlights and, additionally, an outlook for next years is given of the tasks that are planned or that should be done in the near term.</abstract>
                <slug>opo25-79269-parallel-computing-offloading-openmp-and-openacc</slug>
                <track></track>
                
                <persons>
                    <person id='80218'>Tobias Burnus</person><person id='79204'>Thomas Schwinge</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/DmIMqUM4dxY?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/EKDPEH/resources/GNU_Tools_Cauldron_2_NPBbDkw.pdf">Slides of Talk on Parallel Computing, Offloading, OpenMP and OpenACC</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/EKDPEH/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/EKDPEH/feedback/</feedback_url>
            </event>
            <event guid='26096426-349a-5b35-81d1-662b4b7b6300' id='78286' code='P7HWJ9'>
                <room>Auditorium B001 (170)</room>
                <title>IPA, LTO and profile feedback BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>BoF discussing inter-procedural optimization, link-time optimization and profile feedback in GCC</abstract>
                <slug>opo25-78286-ipa-lto-and-profile-feedback-bof</slug>
                <track></track>
                
                <persons>
                    <person id='79373'>jan Hubi&#269;ka</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/rGBgmnGIu_g?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/P7HWJ9/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/P7HWJ9/feedback/</feedback_url>
            </event>
            <event guid='d9ebda8f-b565-516b-b99b-bb88c30f34da' id='75644' code='ZMC7QR'>
                <room>Auditorium B001 (170)</room>
                <title>Uncomplicating new contributions</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>Hear our experiences on mentoring new contributors, what common hurdles they face, and how we try to address them. Then, let&#8217;s discuss how to reduce the barrier to entry.</abstract>
                <slug>opo25-75644-uncomplicating-new-contributions</slug>
                <track></track>
                
                <persons>
                    <person id='75316'>Arjun Shankar</person><person id='79534'>Guinevere</person>
                </persons>
                <language>en</language>
                <description>While our contribution process may seem familiar and uncomplicated to us, it is very different to what most new developers expect, which leads to several stumbling blocks. That is not a failure of our process, we just need to be explicit what is different, so that these new developers feel able to navigate it on their own.
We, Guinevere Larsen and Arjun Shankar, have been attempting to get new contributors in our respective projects, GDB and glibc, and have collected a series of common stumbling blocks for first time contributors.
The first half of this talk aims to present these stumbling blocks, and then suggestions on how projects can reduce or remove them without affecting established developer workflows. The second half will be dedicated to open discussions on those suggestions and new ones that may come up.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/OC1aCUOcfX4?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/ZMC7QR/resources/New_contributors_AAlux0J.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/ZMC7QR/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/ZMC7QR/feedback/</feedback_url>
            </event>
            <event guid='a2d21f6f-5f7f-52c9-82de-935900bf2733' id='79270' code='CY3BMC'>
                <room>Auditorium B001 (170)</room>
                <title>BoF on Parallel Computing, Offloading, OpenMP and OpenACC</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>Discussion of topics related to parallel computing and accelerator offloading in GCC. In particular, related to OpenMP and OpenACC and to offloading to AMD and Nvidia GPUs. But also other topics like additional offloading targets or base-language parallelization features of C, C++, Fortran, or other languages are welcome. Planned topics include completion of OpenMP 5.x and addition of more 6.x features, OpenACC extension, improving performance, but also support for a GPU kernel language (programming at the abstraction level of CUDA/HIP &#8211; as proposed for the next OpenMP version).</abstract>
                <slug>opo25-79270-bof-on-parallel-computing-offloading-openmp-and-openacc</slug>
                <track></track>
                
                <persons>
                    <person id='80218'>Tobias Burnus</person><person id='79204'>Thomas Schwinge</person><person id='80220'>Jakub Jelinek</person>
                </persons>
                <language>en</language>
                <description>_While some discussion points will be prepared, this is an open BoF and other related topics can be raised. A slide or two will be prepared as a starting point for discussion or to illustrate a to-be-discussed item. If you want or have such an item, feel free to send the slide to the BoF organizers for including it._</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/lRpINeTPRBM?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/CY3BMC/resources/GNU_Tools_Cauldron_2_urCONCs.pdf">Slides of BoF on Parallel Computing, Offloading, OpenMP and OpenACC</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/CY3BMC/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/CY3BMC/feedback/</feedback_url>
            </event>
            <event guid='d8b5741e-9d47-5bcd-a67e-d266abbbf524' id='78867' code='BAWVZM'>
                <room>Auditorium B001 (170)</room>
                <title>Processes and Barriers</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T16:00:00+01:00</date>
                <start>16:00</start>
                <duration>01:00</duration>
                <abstract>Q&amp;A panel discussion of development processes in GNU Toolchain projects &#8211; GCC, Glibc, GDB, Binutils, etc. &#8211; and how they affect our developer community.
We will discuss 4 topics:
- Onboarding new developers
- Growth, roles, and reputation. How to become a maintainer?
- Governance, and how decisions are made
- Infrastructure and tools for developers</abstract>
                <slug>opo25-78867-processes-and-barriers</slug>
                <track></track>
                
                <persons>
                    <person id='73234'>Carlos O&apos;Donell</person><person id='79830'>Maxim Kuvyrkov</person>
                </persons>
                <language>en</language>
                <description>Confirmed panelists are:
- Richard Biener
- Nick Clifton
- Adhemerval Zanella
- Maxim Kuvyrkov (moderator)
- Carlos O&apos;Donell (moderator)
... and we are waiting for confirmation from other panelists.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/5IILA_uDzyU">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/BAWVZM/resources/Processes_and_Barrie_7UEb8au.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/BAWVZM/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/BAWVZM/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B002 (170)' guid='d1bb037c-988a-5563-9328-f1eba34ca7b8'>
            <event guid='b7c6397b-2dfc-586e-b605-a9209b9068cc' id='78080' code='BKRJGY'>
                <room>Auditorium B002 (170)</room>
                <title>Latest glibc math improvements and the future</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>The glibc math library aims to provide the required functions and macros from C standard math.h and related headers (fenv.h, float.h, and complex.h). The glibc supports multiple architectures and floating-point types, and also provides vectorized routines for some architectures.  The math library is actively working to support newer extensions and features.

On this, I will demonstrate the recent optimization of multiple parts of the math libraries, explaining how we achieve it by utilizing new algorithms adapted for new hardware, as well as by leveraging external projects with improved implementations. I will also present recent work that supports the newer C23 functions and outline possible future work for optimizations.

Also, I will talk and ask about future extensions and what to focus on. Should we aim to provide implementation with better precision, and what is the expected tradeoff between performance and precision? Should we extend the support for newer types, for instance, float16_t? And what about decimal floating point support? Should we add a platform neutral skeleton vector math library to be used by other archictures?</abstract>
                <slug>opo25-78080-latest-glibc-math-improvements-and-the-future</slug>
                <track></track>
                
                <persons>
                    <person id='79135'>Adhemerval Zanella Netto</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/qwhlh6Z5u-U?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/BKRJGY/resources/Latest_glibc_math_im_Rif7ZkO.pdf">Presentation slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/BKRJGY/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/BKRJGY/feedback/</feedback_url>
            </event>
            <event guid='8827aafe-51e2-58fa-9ed4-ed8040341502' id='78341' code='LXPUYR'>
                <room>Auditorium B002 (170)</room>
                <title>Improving glibc malloc for high reliability large data multi-threaded applications</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>As memory and performance capabilities of computer have increased, virtualization has been the preferred approach to exploit all those resources.
To efficiently use such a system it is required to maximize the number of concurrent applications.
This makes it extremely important to fully optimize any running application not only for time (cpu) but also space (memory).
Moreover, high reliability and large data multi-threaded applications require not only an efficient allocation strategy but also a reliable and fast concurrency mechanism.

The solution for parallelism in glibc malloc (arenas) is based on minimizing concurrency through isolation, splitting the memory space through different threads using virtual memory as an abstraction layer.
This solution defers memory management to the kernel rather than keeping the responsibility to explicitly perform minimum virtual allocation.
Glibc malloc has been identified by projects such as MySQL and JVM as using more memory than required, and this has justified the adoption of other more multi-threaded friendly allocators, such as jemalloc and tcmalloc.

This talk will present MySQL performance and data size analysis using both glibc malloc and other competitive allocators, and show how recent improvements in the glibc malloc implementation greatly reduce virtual memory consumption in real-world MySQL usage, making it unnecessary to resort to other specialized allocators.  Further possible improvements will also be discussed, which can make glibc the best allocator for high availability large data multi-threaded applications.</abstract>
                <slug>opo25-78341-improving-glibc-malloc-for-high-reliability-large-data-multi-threaded-applications</slug>
                <track></track>
                
                <persons>
                    <person id='79431'>Cupertino Miranda</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="http://dimitrik.free.fr/blog/posts/mysql-perf-fosdem25.html">RSS growing reproducer in mysql</link>
                
                    <link href="https://youtu.be/a8VyCwQLk40?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/LXPUYR/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/LXPUYR/feedback/</feedback_url>
            </event>
            <event guid='2f7512a7-e01c-5943-ad7b-4df5d818ffc5' id='73227' code='HEZF9L'>
                <room>Auditorium B002 (170)</room>
                <title>GNU C Library BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>The GNU C Library is used as the C library in the GNU systems and many other systems with the Linux kernel. The library is primarily designed to be a portable and high performance C library. It aims to follows all relevant standards including ISO C17 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.</abstract>
                <slug>opo25-73227-gnu-c-library-bof</slug>
                <track></track>
                
                <persons>
                    <person id='73234'>Carlos O&apos;Donell</person>
                </persons>
                <language>en</language>
                <description>This BoF aims to bring together developers of other components that have dependencies on glibc and glibc developers to talk about the following topics:

* Planning for glibc 2.43 and what work needs to be done
  between September 2025 and February 2026.

* Planning for glibc 2.44 and what work needs to be done
  between February 2026 and August 2026.

* Can we try month-to-month feature planning again?

... and more.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/enO7uwFfI7o?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/HEZF9L/resources/GNU_Tools_Cauldron_2_1CE84nD.pdf">GNU Tools Cauldron 2025 - GNU C Library BoF.pdf</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/HEZF9L/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/HEZF9L/feedback/</feedback_url>
            </event>
            <event guid='b853c4d9-81ad-5c35-9386-ce183b0a5fdc' id='79187' code='Y3CVHY'>
                <room>Auditorium B002 (170)</room>
                <title>s390: Stack tracing using Frame Pointer, Back Chain, and SFrame</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>The talk will provide an overview of the different stack tracing methods (un-)available on s390 for user space.  It will cover:  Why stack tracing using *frame pointer* is virtually impossible on s390 and why compiler option `-fno-omit-frame-pointer` should better be avoided on s390.  The limitations of stack tracing using the s390-specific alternative of *back chain*.  Why *[SFrame](https://sourceware.org/binutils/wiki/sframe)* stack trace information is expected to considerably improve stack tracing of user space on s390.  Finally it will provide an overview of the current state of SFrame support on s390 64-bit (s390x):  The s390-specific SFrame stack trace format extensions,  s390 support for generating SFrame stack trace information in Binutils 2.45,  work-in-progress s390 support for SFrame in Glibc backtrace,  and work-in-progress s390 support for SFrame in Linux Kernel and perf to sample stack traces of user space.</abstract>
                <slug>opo25-79187-s390-stack-tracing-using-frame-pointer-back-chain-and-sframe</slug>
                <track></track>
                
                <persons>
                    <person id='80142'>Jens Remus</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/MVuHvxmJGrY?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/Y3CVHY/resources/s390_-_Stack_tracing_lJsGTR8.pdf">Presentation Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/Y3CVHY/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/Y3CVHY/feedback/</feedback_url>
            </event>
            <event guid='a0f37636-cd45-5abd-9161-94e08accdecd' id='80010' code='ADVMH7'>
                <room>Auditorium B002 (170)</room>
                <title>SFrame for effective userspace stack tracing</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>This talk provides an overview of recent developments in the SFrame stack tracing format over the past year. We discuss some of the enhancements to the SFrame stack trace format that are currently being looked at.  Some of these desirable features in the planned SFrame V3 version help make the format more future-proof and more amenable to overall smoother adoption in the wider GNU/Linux community.</abstract>
                <slug>opo25-80010-sframe-for-effective-userspace-stack-tracing</slug>
                <track></track>
                
                <persons>
                    <person id='80888'>Indu Bhagat</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/L2UmAp39xqk">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/ADVMH7/resources/sframe_cauldron_2025_6d9PxGc.pdf">Presentation Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/ADVMH7/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/ADVMH7/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B003 (170)' guid='09db018b-777b-5f2f-8732-68cd5ccbbb55'>
            <event guid='2016b2a6-bba9-5360-8bda-0f49ddf7f013' id='75075' code='B7WFVR'>
                <room>Auditorium B003 (170)</room>
                <title>unload</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>This is a talk about all things &quot;unload&quot;, my removal of the old reload code.</abstract>
                <slug>opo25-75075-unload</slug>
                <track></track>
                
                <persons>
                    <person id='74676'>Segher</person>
                </persons>
                <language>en</language>
                <description>This is a talk about all things &quot;unload&quot;, my removal of the old reload code.

What made it take five years?  What things remain?  Both in what work still
remains to be done, as well as what code of the old reload remains?

What are the things that can be done now that we always have LRA, instead of the old reload?
We cannot have subregs of memory anymore, but no doubt other things are better now as well!</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/0uPU2NuPJS8?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/B7WFVR/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/B7WFVR/feedback/</feedback_url>
            </event>
            <event guid='6f6dab34-8177-5797-8fe3-ac3d57afdc94' id='79869' code='A3LNUZ'>
                <room>Auditorium B003 (170)</room>
                <title>Hard Register Constraints</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>Similar to register asm but still distinct, hard register constraints are another way to force operands of inline asm into specific machine registers.  In this talk we will have a brief look at hard register constraints and compare them to register asm.  We will look at how to use them, how they might help write more robust code, their current (implementation) limitations, practical experiments, and have a lookout for improvements.</abstract>
                <slug>opo25-79869-hard-register-constraints</slug>
                <track></track>
                
                <persons>
                    <person id='80759'>Stefan Schulze Frielinghaus</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>true</optout>
                </recording>
                <links></links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/A3LNUZ/resources/slides_gzLtHsr.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/A3LNUZ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/A3LNUZ/feedback/</feedback_url>
            </event>
            <event guid='66b13898-9f5f-58a3-b85f-9189ab3f5041' id='80850' code='7FJALC'>
                <room>Auditorium B003 (170)</room>
                <title>bunsen: testsuite result analysis depot, with a sprinkling of AI</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-27T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>Since bunsen was first presented at Cauldron 2019, work and workload has exploded.  Bunsen on sourceware is processing the test results from hundreds of daily builds of a dozen of our favorite projects,   It features CLI and web front-ends for clever searches, plus downloadable archives so you can play along at home.  Recently, it has learned to connect project upstream git repos and commit histories to build/test histories.  Putting all that info together, it can call on an AI to analyze causal factors of regressions.  Let me show you how the tool may already be useful to you.</abstract>
                <slug>opo25-80850-bunsen-testsuite-result-analysis-depot-with-a-sprinkling-of-ai</slug>
                <track></track>
                
                <persons>
                    <person id='82363'>Frank Ch. Eigler</person><person id='82367'>Martin Cermak</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://builder.sourceware.org/testruns/">database browser</link>
                
                    <link href="https://sourceware.org/bunsen/">project</link>
                
                    <link href="https://youtu.be/LEyqZv4aeUs">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/7FJALC/resources/bunsen_fszWNv3.pdf">slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/7FJALC/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/7FJALC/feedback/</feedback_url>
            </event>
            <event guid='57493918-0fc9-568e-9f58-d34929488c2a' id='75766' code='VMJQCK'>
                <room>Auditorium B003 (170)</room>
                <title>ga68: the GNU Algol 68 compiler</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>Algol 68 was designed by the Working Group 2.1 of the International Federation for Information Processing (IFIP) during the late 1960s and early 1970s, leaded by Adriaan van Wijngaarden. The goal of the working group was to provide a programming language suitable to communicate algorithms, to execute them efficiently on a variety of different computers, and to aid in teaching them to students. The resulting language was in principle expected to be an evolved version of Algol 60, known shortcomings addressed, and generally improved.   However, what was initially supposed to be an improved version of Algol 60 turned out to be something very different: an extremely powerful programming language, more modern and more expressive than most programming languages today, whose design exercised almost to the limit the newly invented notion of orthogonality in programming languages.  Algol 68 is not like Algol 60, an important but old fashioned programming language superseded in almost every aspect by its successors, only relevant nowadays as a historical curiosity. Despite of many people claiming otherwise, Algol 68 has no successors.  The GNU Algol 68 Working Group is a group of hackers whose purpose is to bring Algol 68 back to the first line of programming where it belongs, to provide modern implementations of the language well integrated in today&apos;s operating systems and computers (like the GCC Algol 68 front-end), to produce documentation to help people to learn this fascinating language, and to explore extensions and evolve the language with the rigor, respect and seriousness that it deserves and demands.

In January 2025 a first work-in-progress patch series implementing an Algol 68 front-end for GCC got sent to gcc-patches.  Since then, the development has continued at a steady pace and by now most of the language has been implemented.  In this talk we will introduce the front-end and the world domination plan associated with it, will highlight and discuss some interesting aspects of the implementation (Algol 68 is a notoriously difficult to implement language) and will make a  case for the inclusion of the front-end in the main GCC tree.

We will also briefly look at some of the tangent projects like the Algol 68 support in the autotools and the a68 Emacs mode, as time allows.

References:
- Front-end development homepage:  https://gcc.gnu.org/wiki/Algol68FrontEnd
- Git repository: https://forge.sourceware.org/gcc/gcc-a68
- Algol 68 homepage: https://algol68-lang.org</abstract>
                <slug>opo25-75766-ga68-the-gnu-algol-68-compiler</slug>
                <track></track>
                <logo>/media/opo25/submissions/VMJQCK/logo_9u9t95j.jpg</logo>
                <persons>
                    <person id='74726'>Jose Marchesi</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/3aMwC24EcJk?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/VMJQCK/resources/ga68-an-algol68-fron_urUt45Q.pdf">talk slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/VMJQCK/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/VMJQCK/feedback/</feedback_url>
            </event>
            <event guid='5d587df4-47ce-5a2d-a230-97c67e4f9f7d' id='75074' code='NQNCEW'>
                <room>Auditorium B003 (170)</room>
                <title>What&apos;s new with diagnostics in GCC 16</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-27T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>I&apos;ll be talking about developments in GCC 16:

*  those affecting GCC&apos;s diagnostic subsystem, and
* those affecting the static analyzer (-fanalyzer)</abstract>
                <slug>opo25-75074-what-s-new-with-diagnostics-in-gcc-16</slug>
                <track></track>
                
                <persons>
                    <person id='74675'>David Malcolm</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/v0X7o5wdoeY?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/NQNCEW/resources/2025-Cauldron-diagno_5C24sqH.pdf">Slides: &quot;What&#x27;s new with diagnostics in GCC 16&quot;</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/NQNCEW/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/NQNCEW/feedback/</feedback_url>
            </event>
            <event guid='2945384d-4b74-5cb6-8646-a971d87a987a' id='78540' code='8CAXUU'>
                <room>Auditorium B003 (170)</room>
                <title>The GDB BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-27T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>An opportunity for the GDB community to meet to discuss all things related to the GNU Debugger project.</abstract>
                <slug>opo25-78540-the-gdb-bof</slug>
                <track></track>
                
                <persons>
                    <person id='79580'>Pedro Alves</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/LnKQ9n7VFXs">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/8CAXUU/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/8CAXUU/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    <day index='3' date='2025-09-28' start='2025-09-28T04:00:00+01:00' end='2025-09-29T03:59:00+01:00'>
        <room name='Auditorium B032 (80)' guid='3d3ddecb-2ccf-55f6-b4cd-b24052ab285a'>
            <event guid='87d66957-c9a5-5c59-905f-81fa790785f4' id='78405' code='VMWHG7'>
                <room>Auditorium B032 (80)</room>
                <title>Licensing Birds of a Feather</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>As the FSF&apos;s licensing and compliance manager, I will address licensing-related questions from the maintainers and developers of the toolchain projects. This will be an informal, interactive exchange about the topics collected through RFCs before GNU Cauldron but you are welcome to ask a question during the session as well. It will also be an opportunity to learn about FSF&apos;s Licensing and Compliance Lab recent work. We plan to cover topics such as LLM-generated contributions to GNU, following notice and attribution requirements, and GPL compliance in different technical setups.</abstract>
                <slug>opo25-78405-licensing-birds-of-a-feather</slug>
                <track></track>
                
                <persons>
                    <person id='74166'>Krzysztof Siewicz</person>
                </persons>
                <language>en</language>
                <description>One of the FSF&apos;s Licensing and Compliance Lab&apos;s priorities is to support the GNU Project in any licensing-related challenges, collecting copyright assignments and copyright maintenance, as well as working with identified GPL violations to ensure software freedom in GNU programs is respected by distributors. You can always send us a question at &lt;licensing@fsf.org&gt; but we would love to use every possible opportunity to meet and talk in person. 

This proposed session for the FSF licensing BoF at Cauldron will help us to get to know each other better and understand what are the best ways to be of help to the GNU Project&apos;s developers. We have reached out to the maintainers and developers of the toolchain projects with RFCs, and already received some suggestions of topics to cover during this BoF, like: Licensing challenges in accepting LLM-generated source code; Practical approach to observing notice and attribution requirement in licenses of preexisting code used in GNU programs; and GPL compliance in the context of software containers. All pertinent topics we look forward to addressing and openly discussing at GNU Cauldron. People can send us more suggestions until the Cauldron and if time permits, we are also prepared to brief you about the Lab&apos;s recent work, in particular in the GPL stewardship and compliance area.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/plD5xe04sNI?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/VMWHG7/resources/Siewicz_Licensing_Bo_eg6CtJr.pdf">Siewicz - Licensing BoF presentation</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/VMWHG7/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/VMWHG7/feedback/</feedback_url>
            </event>
            <event guid='87eac643-d78d-52e5-8e2f-c527a86bd8ca' id='80753' code='VM3GNC'>
                <room>Auditorium B032 (80)</room>
                <title>Rust front end post libcore</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-28T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>This year the Rust front end completed multiple major milestones: the name resolution rework is now complete, the desugaring pass has brought support for a lot of new features, and we were lucky enough to get two amazing GSOC students who greatly improved the capabilities of the front end.

Being able to compile more Rust led to some unexpected discoveries and opened the way for previously unhandled complex edge cases to be fixed.

Our next step involves iterating towards compiling Rust-for-Linux, which we will begin experimenting with in September.

This talk will cover what has recently changed in the Rust front end and what will be done this year, as well as a few surprises we had along the way. The talk will conclude with an update of the upstream synchronization process and the communication with the wider GCC community.</abstract>
                <slug>opo25-80753-rust-front-end-post-libcore</slug>
                <track></track>
                
                <persons>
                    <person id='82269'>Pierre-Emmanuel Patry</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/FCLM74g4kHQ">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/VM3GNC/resources/Cauldron_2025_36jcABe.pdf">Slides used during the talk</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/VM3GNC/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/VM3GNC/feedback/</feedback_url>
            </event>
            <event guid='d162dfdd-77ac-51ef-a6a7-6d9a6154c7a3' id='81014' code='M7GYBJ'>
                <room>Auditorium B032 (80)</room>
                <title>Formalizing the semantics of GIMPLE</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-28T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>In my work on [smtgcc](https://github.com/kristerw/smtgcc) to formalize the semantics of GIMPLE, I have found several cases where optimization passes perform invalid transformations, as well as cases where the GIMPLE semantics do not allow optimization passes to express what they need (see [PR120980](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120980) for an example). In this talk, I will present the current status of the formalization and discuss the issues I have found during the process.</abstract>
                <slug>opo25-81014-formalizing-the-semantics-of-gimple</slug>
                <track></track>
                
                <persons>
                    <person id='82480'>Krister Walfridsson</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/CzR2-kET5S4">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/M7GYBJ/resources/Formalizing_GIMPLE_s_AXSaEx1.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/M7GYBJ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/M7GYBJ/feedback/</feedback_url>
            </event>
            <event guid='1c0fc954-4d55-5345-95fc-653b253dfdc7' id='81900' code='WJNXAP'>
                <room>Auditorium B032 (80)</room>
                <title>Moving BPF verifier towards classic data flow analysis techniques</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-28T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>01:00</duration>
                <abstract>The BPF verifier has troubles when verifying loops.  This talk will cover:

- historical evolution of loops handling by verifier;
- problems with current state of things (too crude widening,
  no bounds for induction variables);
- describe DFA based liveness analysis that landed last week;
- describe further steps adding DFA-based value range analysis to
  the verifier (a very hand-waving part).

We are interested in the feedback of the GNU toolchain community, especially when it comes to range analysis.</abstract>
                <slug>opo25-81900-moving-bpf-verifier-towards-classic-data-flow-analysis-techniques</slug>
                <track></track>
                
                <persons>
                    <person id='83399'>Eduard Zingerman</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/bLRZlSKj0wg">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/WJNXAP/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/WJNXAP/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B001 (170)' guid='6ee287ca-f06b-5443-9c91-47b578161d34'>
            <event guid='bd255a6a-6c1a-5b8f-9ea3-fbb583e50958' id='78131' code='DUAJWT'>
                <room>Auditorium B001 (170)</room>
                <title>Steering Committee Q&amp;A</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-28T09:00:00+01:00</date>
                <start>09:00</start>
                <duration>01:00</duration>
                <abstract>An opportunity for a GNU Toolchain community conversation with the members of the Steering Committees of the GNU Toolchain projects (GCC, GLIBC, Binutils, GDB).</abstract>
                <slug>opo25-78131-steering-committee-q-a</slug>
                <track></track>
                
                <persons>
                    <person id='79193'>David Edelsohn</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/wkLWkbznZ_U?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/DUAJWT/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/DUAJWT/feedback/</feedback_url>
            </event>
            <event guid='2f927582-c4ce-56db-ba3e-303dd3521934' id='79952' code='SBAAAL'>
                <room>Auditorium B001 (170)</room>
                <title>Handling C++ Exception Hierarchies in Ada</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-28T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>GNAT already offered mechanisms to handle C++ exceptions, but they were
limited to exact class type matches.  This presentation covers the
extensions to Ada syntax, runtime and library to enable Ada subprograms
to catch and handle C++ exceptions hierarchies, and to reference the
raised C++ (sub-)object.

Slides at https://www.lx.oliva.nom.br/slides/adacxxcept.en.pdf</abstract>
                <slug>opo25-79952-handling-c-exception-hierarchies-in-ada</slug>
                <track></track>
                
                <persons>
                    <person id='80831'>Alexandre Oliva</person>
                </persons>
                <language>en</language>
                <description>The presentation will contrast Ada&apos;s and C++&apos;s exception models, go
through the preexisting implementation and its constraints, how we&apos;ve
extended exception declarations, relaxed handler constraints, exposed
C++ RTTI and used it in the runtime and the library to catch C++ derived
objects by Ada exceptions associated with the C++ base class, and to
gain access to the caught C++ sub-objects.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/kZFHBXeRAZQ">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBAAAL/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBAAAL/feedback/</feedback_url>
            </event>
            <event guid='628f7599-ea0c-5a0f-aecf-491647512aad' id='80061' code='3VZ9BE'>
                <room>Auditorium B001 (170)</room>
                <title>Interprocedural optimization of OpenMP kernels</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-28T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>00:30</duration>
                <abstract>When compiling OpenMP constructs, the bodies of OpenMP regions are outlined into separate functions, which are later called indirectly by libgomp built-ins. This outlining process disables interprocedural optimizations for the kernels. In this short talk, we outline a mechanism to partially restore interprocedural optimization capabilities for the kernels, starting with constant propagation, and we discuss its applications beyond OpenMP.</abstract>
                <slug>opo25-80061-interprocedural-optimization-of-openmp-kernels</slug>
                <track></track>
                
                <persons>
                    <person id='80941'>Josef Melcr</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/yvWNkYYj8N0">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/3VZ9BE/resources/ipa_for_openmp_dPItDDv.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/3VZ9BE/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/3VZ9BE/feedback/</feedback_url>
            </event>
            <event guid='20e1f8bd-fabc-5d29-8b40-f3453179dcd9' id='80944' code='3PTT7K'>
                <room>Auditorium B001 (170)</room>
                <title>Quantifying Abstraction Costs in GCC</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-28T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>00:30</duration>
                <abstract>Everyone wants to improve the code quality of GCC yet many small patches, suggested improvements, and larger refactoring projects remain unaddressed. In some cases without any updates in over 20 years! It becomes very discouraging to attempt to develop these patches when there is no set guidelines for what is acceptable. To that end, we will take a brief look at past efforts to identify the pain points of developing, reviewing, and finally approving these patches. From here we look at what we can do to reduce friction for developers and maintainers, with a focus on quantifying impacts on GCC&apos;s compile duration, run time performance and debug-ability.</abstract>
                <slug>opo25-80944-quantifying-abstraction-costs-in-gcc</slug>
                <track></track>
                
                <persons>
                    <person id='82452'>Alex (Waffl3x)</person>
                </persons>
                <language>en</language>
                <description>This talk also serves as a soft prerequisite to my BOF as the motivations for it are covered in this talk, if you&apos;re interested in attending it you should consider being here for this one.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/V41YYzG5vJM">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/3PTT7K/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/3PTT7K/feedback/</feedback_url>
            </event>
            <event guid='1f9ca8f6-91fb-535f-86fb-a488963ed691' id='80955' code='GWSYPJ'>
                <room>Auditorium B001 (170)</room>
                <title>GCC BOF: Reviewing refactoring goals and acceptable abstractions</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>In continuation from my talk on quantifying abstractions by objective costs, we also need to evaluate the more subjective costs and benefits of this work, as well as where that work should be directed. Ideally this will form the basis of a design document that developers can refer to for guidance, further reducing friction between developers and maintainers by making expectations more clear.
We will talk about and evaluate:
- acceptability and like/dislike of different abstractions and practices
- what is most important to refactor/rewrite/modernize, and the risks of doing so
- refresh our state on goals, ImprovementProjects, and rearch plans (some of this is very old)
- figure out what changes we really want
- and very importantly, what we do NOT want our code base to become

To help stimulate discussion, I will prepare examples of code with potential refactors (some intentionally bad).</abstract>
                <slug>opo25-80955-gcc-bof-reviewing-refactoring-goals-and-acceptable-abstractions</slug>
                <track></track>
                
                <persons>
                    <person id='82452'>Alex (Waffl3x)</person>
                </persons>
                <language>en</language>
                <description>This builds on top of my previous talk &quot;Quantifying Abstraction Costs in GCC&quot;, if you plan on attending this BOF it would be beneficial to attend that talk to develop more background.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/KErlyEo_Qac">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/GWSYPJ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/GWSYPJ/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B002 (170)' guid='d1bb037c-988a-5563-9328-f1eba34ca7b8'>
            <event guid='505d7cc3-126c-5cf8-87a3-92a990e4a662' id='80987' code='8H8U3C'>
                <room>Auditorium B002 (170)</room>
                <title>Developing a dead code elimination pass with RTL SSA</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-28T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>00:30</duration>
                <abstract>The RTL SSA framework is a relatively new component of GCC that enables SSA-based analysis on RTL. In this talk, I will present a dead code elimination (DCE) implementation built on top of this framework, intended to replace the existing UD-chain based DCE.</abstract>
                <slug>opo25-80987-developing-a-dead-code-elimination-pass-with-rtl-ssa</slug>
                <track></track>
                
                <persons>
                    <person id='82300'>Ond&#345;ej Machota</person>
                </persons>
                <language>en</language>
                <description>For my bachelor&#8217;s thesis, I implemented a dead code elimination (DCE) pass using the RTL SSA framework in GCC. This talk aims to explain the SSA based DCE algorithm in detail, outline key aspects of the implementation and highlight the challenges and decisions encountered during development.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/Wibb-XPGJqQ">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/8H8U3C/resources/Cauldron_6RRhCpq.pdf">Presentation</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/8H8U3C/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/8H8U3C/feedback/</feedback_url>
            </event>
            <event guid='5b828caa-4f37-5d9b-a7f9-453432d0289a' id='80933' code='MSLAKP'>
                <room>Auditorium B002 (170)</room>
                <title>Bringing AutoFDO to AARCH64: Low-Overhead, Profile Guided Optimization for AArch64</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-28T11:00:00+01:00</date>
                <start>11:00</start>
                <duration>00:15</duration>
                <abstract>Profile-Guided Optimization (PGO) is a powerful technique for achieving performance gains, yet its instrumentation-based implementation imposes a high overhead that limits its adoption in production environments. AutoFDO solves this by using low-overhead hardware based sampling to gather profile data, making it an ideal approach for continuous, real-world optimization. 
This presentation details the work required to enable AutoFDO for  AArch64 within the GNU toolchain and a state of the world for AutoFDO. We will cover the key architectural features that make efficient, sampling-based profiling possible. We cover the hardware pre-requisites and implications of using the various hardware units available on the AArch64 architecture (namely SPE and BRBE).
We will discuss the specific technical challenges encountered, including the crucial task of accurately annotating the pre-optimization IR representation using a profile gathered from an already optimized binary. We will detail the fixes implemented in the AutoFDO tools and GCC to handle the discrepancies that arise from this process. This ensures that the profile data correctly drives optimizations like inlining and block reordering, even with significant</abstract>
                <slug>opo25-80933-bringing-autofdo-to-aarch64-low-overhead-profile-guided-optimization-for-aarch64</slug>
                <track></track>
                
                <persons>
                    <person id='82444'>Kugan Vivekanandarajah</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/h18BaMo6DJs">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/MSLAKP/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/MSLAKP/feedback/</feedback_url>
            </event>
            <event guid='3ce593bd-5afd-517e-bb10-7ca10b551531' id='80932' code='SNB8BU'>
                <room>Auditorium B002 (170)</room>
                <title>CI and Fuzzing for RISC-V</title>
                <subtitle></subtitle>
                <type>Lightning Talks</type>
                <date>2025-09-28T11:15:00+01:00</date>
                <start>11:15</start>
                <duration>00:15</duration>
                <abstract>In this talk, I will give a quick overview of some of the current existing RISC-V testing infrastructure, focusing on our pre/post commit CI and automated fuzzing system. I will briefly show how these tools have helped identify regressions early and provide faster feedback to developers.</abstract>
                <slug>opo25-80932-ci-and-fuzzing-for-risc-v</slug>
                <track></track>
                
                <persons>
                    <person id='82443'>Edwin Lu</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/CbImcdym7Jo">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/SNB8BU/resources/GNU_Cauldron_2025_CI_IpxduDn.pdf">slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SNB8BU/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SNB8BU/feedback/</feedback_url>
            </event>
            <event guid='fa2ce04a-666e-596f-8693-2994d508e288' id='78097' code='SBAG78'>
                <room>Auditorium B002 (170)</room>
                <title>Sourceware Forge: contribution workflows with Forgejo</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>The session starts with a brief (15-20 min) presentation on
- the motivations and requirements people have communicated for using a forge
- what forgejo provides and what&apos;s missing
- an overview of how existing workflows can gradually migrate to the forge

The majority of time will be used to gather feedback from the community.</abstract>
                <slug>opo25-78097-sourceware-forge-contribution-workflows-with-forgejo</slug>
                <track></track>
                
                <persons>
                    <person id='79154'>Claudio Bantaloukas</person><person id='79259'>Mark J. Wielaard</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/7rBGuBDBTLM?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/SBAG78/resources/Sourceware_Forge_Cau_uoIQuCr.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBAG78/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SBAG78/feedback/</feedback_url>
            </event>
            <event guid='93ba44f9-e782-57d8-9388-f188904812f6' id='80831' code='9NFAJJ'>
                <room>Auditorium B002 (170)</room>
                <title>RISC-V BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>The annual opportunity to review and discuss anything about the RISC-V backend.</abstract>
                <slug>opo25-80831-risc-v-bof</slug>
                <track></track>
                
                <persons>
                    <person id='82345'>Jeremy Bennett</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/cHh10Urud6U">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/9NFAJJ/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/9NFAJJ/feedback/</feedback_url>
            </event>
            
        </room>
        <room name='Auditorium B003 (170)' guid='09db018b-777b-5f2f-8732-68cd5ccbbb55'>
            <event guid='3d051afb-d3b4-5043-b7cf-e4aa0da62857' id='75062' code='3SXARL'>
                <room>Auditorium B003 (170)</room>
                <title>Vectorizer BOF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T10:30:00+01:00</date>
                <start>10:30</start>
                <duration>01:00</duration>
                <abstract>After short updates on vectorizer work from contributors this is the chance to discuss larger work going forward.</abstract>
                <slug>opo25-75062-vectorizer-bof</slug>
                <track></track>
                
                <persons>
                    <person id='74663'>Richard Biener</person><person id='74774'>Tamar Christina</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/hCZI7b7m9IA?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/3SXARL/resources/Vectorizer_BOF_oj507vy.pdf">Slides from the BOF</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/3SXARL/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/3SXARL/feedback/</feedback_url>
            </event>
            <event guid='e32d9a2f-a13a-53e8-a14f-b68bfaaa29f3' id='79595' code='SPUUDV'>
                <room>Auditorium B003 (170)</room>
                <title>Source Code Analysis and Navigation: the metadatabase</title>
                <subtitle></subtitle>
                <type>Talk</type>
                <date>2025-09-28T11:30:00+01:00</date>
                <start>11:30</start>
                <duration>01:00</duration>
                <abstract>A proof-of-concept demonstration of a language-independent metadata database to support source-code interrogation and navigation.  Such a database could support little-understood source-code analysis and functionality that is not available today at any price.  

I propose that GCC be extended to produce such a database, probably from the gimple tree, as an affordance to tool developers.</abstract>
                <slug>opo25-79595-source-code-analysis-and-navigation-the-metadatabase</slug>
                <track></track>
                
                <persons>
                    <person id='80504'>James K. Lowden</person>
                </persons>
                <language>en</language>
                <description>Tool development for C++ in particular died on the vine in the 1990s, a victim of industry factors and perception.  Today, commonly used tools like *cscope* and *etags* cannot distinguish between `std::find` and `std::map::find`.  The *etags* file format was last updated in 1998 and in the introduction to its manual lists _support for C++_ as a desirable feature.  

Even if these broken tools worked on their own terms, they would still be inadequate.  Static analysis can show, for example, everywhere a variable is modified, and where its address is taken so that it _could_ be modified, and the code paths by which that modification is effected.  Static analysis can _prove_ that a variable is not modified or a function is not called from some arbitrary module.  

But no tool does those things.  A moment&apos;s consideration reveals why: to _analyze_, say, C++, a tool must first _parse_ C++, a famously difficult proposition.  For GCC, though, that is a solved problem.  Let&apos;s externalize what the gcc parsers do, so tool developers can exploit them.</description>
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/Fyii9rnMXu4">Video of the talk</link>
                
                    <link href="https://youtu.be/Fyii9rnMXu4?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments></attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/SPUUDV/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/SPUUDV/feedback/</feedback_url>
            </event>
            <event guid='64022eb5-0edb-5db7-85a3-0670c33f0189' id='75645' code='B97ARA'>
                <room>Auditorium B003 (170)</room>
                <title>Arm/AArch64 BoF</title>
                <subtitle></subtitle>
                <type>Birds of a Feather (BoF)</type>
                <date>2025-09-28T13:30:00+01:00</date>
                <start>13:30</start>
                <duration>01:00</duration>
                <abstract>A chance to discus upcoming and future work in the GNU toolchain for Arm platforms</abstract>
                <slug>opo25-75645-arm-aarch64-bof</slug>
                <track></track>
                
                <persons>
                    <person id='74774'>Tamar Christina</person><person id='75170'>Alex Coplan</person><person id='75330'>Wilco Dijkstra</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/p-e4J1zE7hE?list=PL_GiHdX17WtxuKn7QYme8EfbBS-RKSn0w">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/B97ARA/resources/ArmAArch64_BoF_LJDmSvd.pdf">Slides</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/B97ARA/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/B97ARA/feedback/</feedback_url>
            </event>
            <event guid='f3b461ed-2891-5e4f-9d91-f9a3ce95606b' id='80298' code='9NWN9S'>
                <room>Auditorium B003 (170)</room>
                <title>Notes about MTE implementation</title>
                <subtitle></subtitle>
                <type>Talk (Short)</type>
                <date>2025-09-28T14:30:00+01:00</date>
                <start>14:30</start>
                <duration>00:30</duration>
                <abstract>The Memory Tagging Extension (MTE) is a feature of the ARM v8.5 architecture that introduces several hardware capabilities:
    - Each aligned 16-byte region of application memory can be assigned a 4-bit memory tag.
    - Every pointer can include a 4-bit address tag in its most significant byte.
    - An exception is triggered if the address tag differs from the memory tag.
    - A set of special instructions is provided for efficient tag manipulation.

MTE aims to tackle two major issues: buffer overflows and use-after-free errors. It is the responsibility of tools such as compilers, libraries, and assemblers to emit MTE instructions that instrument the code to prevent these errors.

This talk outlines the current support (and work in progress) for MTE instructions in the latest GNU tools, including GCC, binutils, and glibc.</abstract>
                <slug>opo25-80298-notes-about-mte-implementation</slug>
                <track></track>
                
                <persons>
                    <person id='80930'>Claudiu Zissulescu</person>
                </persons>
                <language>en</language>
                
                <recording>
                    <license></license>
                    <optout>false</optout>
                </recording>
                <links>
                    <link href="https://youtu.be/s_rsoe65a64">Video of the talk</link>
                </links>
                <attachments>
                    <attachment href="https://conf.gnu-tools-cauldron.org/media/opo25/submissions/9NWN9S/resources/mte_SYXki6G.pdf">Presentation</attachment>
                </attachments>

                <url>https://conf.gnu-tools-cauldron.org/opo25/talk/9NWN9S/</url>
                <feedback_url>https://conf.gnu-tools-cauldron.org/opo25/talk/9NWN9S/feedback/</feedback_url>
            </event>
            
        </room>
        
    </day>
    
</schedule>
