Use std::unique_ptr to replace llvm::OwningPtr