Merge with upstream LLVM