upgraded to LLVM trunk