If writing compilers in C++ sounds like a pain, there's also an OCaml version of this tutorial: http://llvm.org/docs/tutorial/OCamlLangImpl1.html
They're already in use to provide an llvm backend for the idris compiler, and ill be using them myself soon too.
One of the notable novelties about llvm general Is that you can manipulate the llvm AST as a normal Haskell data type. It also has really nice hooks for using most of the well maintained llvm Apis.