Chapuni's branch based on http://llvm.org/git/llvm.git