The LLVM Project Blog

LLVM Project News and Details from the Trenches

  • LLVM @ "The Architecture of Open Source Applications"

    LLVM is featured in a chapter of the new book The Architecture of Open Source Applications. This chapter talks about the high-level design of LLVM, and how it differs from other contemporary compilers and JITs out there, why you might want to use it (if you're looking for compiler libraries), a simple example of writing an optimization, how the code is structured, a 10,000 foot view of how the code generator works, and some of the interesting capabilities LLVM has due to its design.

    Read more…
  • C++ at Google: Here Be Dragons

    Google has one of the largest monolithic C++ codebases in the world. We have thousands of engineers working on millions of lines of C++ code every day. To help keep the entire thing running and all these engineers fast and productive we have had to build some unique C++ tools, centering around the Clang C++ compiler.

    Read more…
  • What Every C Programmer Should Know About Undefined Behavior #3/3

    In Part 1 of the series, we took a look at undefined behavior in C and showed some cases where it allows C to be more performant than "safe" languages.

    Read more…
  • What Every C Programmer Should Know About Undefined Behavior #2/3

    In Part 1 of our series, we discussed what undefined behavior is, and how it allows C and C++ compilers to produce higher performance applications than "safe" languages. This post talks about how "

    Read more…
  • What Every C Programmer Should Know About Undefined Behavior #1/3

    People occasionally ask why LLVM-compiled code sometimes generates SIGTRAP signals when the optimizer is turned on. After digging in, they find that Clang generated a "ud2" instruction (assuming X86 code) - the same as is generated by __builtin_trap().

    Read more…
  • Regular Expression Commands

    Greetings LLDB users. I want to start writing regular blog posts for the new and cool features and things you can do in LLDB. Today I will start with one that was just added: regular expression commands.

    Read more…
  • LLVM Developer Meeting 2010

    The 2010 edition of the LLVM Developer's Meeting has come and gone, and it was a great event. It featured 17 great talks, several BOF sessions, and lots of informal discussions between all sorts of people interested in LLVM and its subprojects.

    Read more…
  • LLVM in ClamAV

    New in version 0.96, the ClamAV antivirus system extends its internal bytecode interpreter to support an LLVM JIT compiler. This JIT compiler allows for improved execution speeds, but also provides the ability to write virus checks directly in C code.

    Read more…
  • TCE project: Co-design of application-specific processors with LLVM-based compilation support

    TTA-based Codesign Environment (TCE) is an application-specific instruction-set processor (ASIP) design toolset developed in Tampere University of Technology in several research projects since 2003. This blog post introduces the project and how LLVM is used in it to provide high-level language compiler support for the designed ASIPs.

    Read more…
  • New "lldb" Debugger

    I'm happy to announce a great new subproject of LLVM: LLDB. LLDB is a modern debugger infrastructure which is built (like the rest of LLVM) as a series of modular and reusable libraries.

    Read more…