Clang Builds LLVM
Just in time for the Christmas holiday, the Clang project has hit a major milestone: Clang can now build all of LLVM and Clang! The resulting Clang-built-Clang is not yet functional, so this "
Read more…Advanced Topics in Redundant Load Elimination with a Focus on PHI Translation
In our previous post on GVN we introduced some basics of load elimination. This post describes some advanced topics and focuses on PHI translation: what it is, why it is important, shows some nice things it can do, and describes the implementation in LLVM.
Read more…The Dreaded Two-Phase Name Lookup
C++ has more than its fair share of dark, dank corners, especially where templates are concerned. One of the most vexing is "two-phase name lookup", which involves lookup for any names that occur in the body of a template.
Read more…Introduction to load elimination in the GVN pass
One very important optimization that the GVN pass (opt -gvn) does is load elimination. Load elimination involves several subsystems (including alias analysis, memory dependence analysis, SSA construction, PHI translation) and has many facets (full vs partial redundancy elimination, value coercion, handling memset/memcpy, etc).
Read more…'lit' it
If you've been watching LLVM and Clang, you'll notice that there is a new testing tool we are using called lit. Clang has already moved to it, and LLVM has support for it (DejaGNU is still the default, but is being phased out).
Read more…Welcome to the LLVM Blog
Welcome to the new and shiny LLVM Blog. We've noticed that while the greater LLVM community active and thriving, that it is very difficult for people who aren't hacking on it to follow interesting developments.
Read more…