Use create methods since msvc doesn't handle delegating constructors.
Update for llvm api change.