According to the Twine.h comment, the Twines should only be used as const references in arguments.
LGTM, assuming this builds cleanly. I don't pretend to be an expert on Twine though, so somebody with more experience with it might want to give their opinion first.
Twine can be the root of an arbitrary tree, and is not intended to be copied, the way StringRef is. Passing by const ref is correct.
-Reorder the patches from the stack
Thanks for the reviews, I'll land this.