sync from llvm

sync from llvm