The LLVM Project Blog

LLVM Project News and Details from the Trenches

  • OpenMP* project

    I am extremely glad to announce that Intel has decided to provide a copy of our Intel® open-source OpenMP* runtime as an LLVM sub-project (and the LLVM project has been kind enough to accept our contribution!

    Read more…
  • libc++ and C++1Y

    I am proud to announce that as of September 21, libc++ has a full implementation of the C++1Y standard library. In April of 2013, the C++ standards committee approved a draft version of the next revision of the C++ language, called "

    Read more…
  • A path forward for an LLVM toolchain on Windows

    Over the past several months, contributors from Google and elsewhere in the community have begun actively working on bringing an LLVM toolchain to Windows in a way that would support and enhance a fully native development experience.

    Read more…
  • Clang Warnings

    Clang has two types of diagnostics, errors and warnings.  Errors arise when the code does not conform to the language.  Such things as missing semi-colons and mismatched braces prevent compilation and will cause Clang to emit an error message.

    Read more…
  • Object Caching with the Kaleidoscope Example Program

    In previous posts I described the process of porting the LLVM Kaleidoscope tutorial program to use MCJIT as its execution engine and introduced a lazy compilation implementation with the MCJIT engine.

    Read more…
  • Kaleidoscope Performance with MCJIT

    In a previous post I described the process of porting the LLVM Kaleidoscope tutorial program to use MCJIT as its execution engine.  After navigating through a serious of road blocks we ended up with an implementation that was working as expected.

    Read more…
  • Using MCJIT with the Kaleidoscope Tutorial

    You may have noticed that there are two different JIT execution engines in the LLVM project.  The older implementation (llvm::JIT) is a sort of ad hoc implementation that brings together various pieces of the LLVM code generation and adds its own glue to get dynamically generated code into memory one function at a time.

    Read more…
  • LLDB 3.3 and beyond

    The LLVM project debugger (LLDB) has seen a recent upswing of activity around the LLVM 3.3 release.  While the debugger has long been the default tool with Xcode, its potential beyond Darwin has had room to grow.

    Read more…
  • LLVM 3.3 Released!

    LLVM 3.3 is now available! For details, you can read the Release Notes. LLVM 3.3 is a big release: it adds new targets for the AArch64 and AMD R600 GPU architectures, adds support for IBM's z/Architecture S390 systems, and major enhancements for the PowerPC backend (including support for PowerPC 2.

    Read more…
  • LLVM 3.3 Vectorization Improvements

    I would like to give a brief update regarding vectorization in LLVM. When LLVM 3.2 was released, it featured a new experimental loop vectorizer that was disabled by default. Since LLVM 3.

    Read more…