That is, we are not going to write out DWARF. We can't, because DWARF
is not designed to represent all the details which the compiler needs
to represent. What we are going to write out is a superset of DWARF.
And in fact, if it helps, I think that we shouldn't hesitate to write
out something which is similar to but incompatible with DWARF.
In general reading and writing trees is far from the hardest part of
the LTO effort. I think it is a mistake for us to get too tied up in
the details of how to represent things in DWARF. (I also think that
we could probably do better by defining our own bytecode language, one
optimized for our purposes, but it's not an issue worth fighting
over.)