sync from llvm