The LLVM Project Blog

LLVM Project News and Details from the Trenches

  • Generating relocatable code for ARM processors

    Abstract By upgrading the LLVM compiler, we solved the problem when neither LLVM nor the GCC could create the correct Position Independent Code for Cortex M controllers, with the code running in Flash memory rather than in RAM.

    Read more…
  • Meet the LLVM Outreachy Interns!

    The LLVM Project is participating in the Outreachy program for the first time. Two interns have been selected: Sushma Unnibhavi & Pooja Yadav. Outreachy provides paid, remote internships with the goal of increasing diversity in open source.

    Read more…
  • Smaller debug info with constructor type homing

    Constructor type homing for debug info Background Class type information is a large contributor to debug info size. Clang already has a few optimizations to reduce the size of class type information based on the assumption that debug info can be spread out over multiple compilation units.

    Read more…
  • Women in Compilers and Tools Meetup Series

    As today is the last day of Women’s History Month, it seems fitting to announce a new meetup series for Women in Compilers and Tools. The LLVM Women in Compilers and Tools Meetup Series is a free virtual event held each month.

    Read more…
  • The New Pass Manager

    LLVM’s New Pass Manager What is a pass manager? A pass manager schedules transformation passes and analyses to be run on IR in a specific order. Passes can run on an entire module, a single function, or something more abstract such as a strongly connected component (SCC) in a call graph or a loop inside of a function.

    Read more…
  • Cling -- Beyond Just Interpreting C++

    Interactive C++ with Cling In our previous blog post “Interactive C++ for Data Science” we described eval-style programming, interactive C++ in Notebooks and CUDA. This post will discuss some developed applications of Cling supporting interoperability and extensibility.

    Read more…
  • LLVM meets Code Property Graphs

    The code property graph (CPG) is a data structure designed to mine large codebases for instances of programming patterns via a domain-specific query language. It was first introduced in the proceedings of the IEEE Security and Privacy conference in 2014 (publication, PDF) in the context of vulnerability discovery in C system code and the Linux kernel in particular.

    Read more…
  • Introducing Community.o and the Community.o Summit

    The LLVM Foundation is excited to announce Community.o! This is a new face to the LLVM Foundation’s Diversity and Inclusion and Women in Compilers and Tools program. We’ve adopted a name to represent what this program hopes to accomplish which is to build a strong, healthy, and diverse open source community.

    Read more…
  • Bringing Stack Clash Protection to Clang / X86 — the Open Source Way

    Context Stack clash is an attack that dates back to 2017, when the Qualys Research Team released an advisory with a joint blog post. It basically exploits large stack allocation (greater than PAGE_SIZE) that can lead to stack read/write not triggering the stack guard page allocated by the Linux Kernel.

    Read more…
  • Interactive C++ for Data Science

    Interactive C++ for Data Science In our previous blog post “Interactive C++ with Cling” we mentioned that exploratory programming is an effective way to reduce the complexity of the problem. This post will discuss some applications of Cling developed to support data science researchers.

    Read more…