I like that it makes quite a bit of the code in DwarfDebug.cpp more compact, but it mostly just moves the complexity to another file. Is there a reason for the move or is it just an attempt at some nice cleanup? i.e. motivation? http://reviews.llvm.org/D3573