Mucking about simplifying a test case ( https://reviews.llvm.org/D55261 ) I stumbled across something I've hit before - that LLVM's (GCC's does too, FWIW) assembly output includes a hardcode length for a DWARF unit in its header. Instead we could emit a label difference - making the assembly easier to read/edit (though potentially at a slight (I haven't tried to observe it) performance cost of delaying/sinking the length computation into the MC layer).
This does cause a few tests to fail currently - DebugInfo/X86/sections_as_references.ll (which was testing that there were no labels in the unit header & now there's one label there) and a few NVPTX ones (these might be a real issue - because NVPTX seems to have some strong limitations on what sort of assembly it can cope with - and maybe these label differences wouldn't be acceptable there, so I've added Alexey to this review to get his perspective on that part)
Sometimes sizeof(uint32_t) is used here, but up to you.