On Fri, Jun 6, 2008 at 1:44 AM, Daniel Berlin <[EMAIL PROTECTED]> wrote: > On Thu, Jun 5, 2008 at 5:57 AM, Jan Hubicka <[EMAIL PROTECTED]> wrote: >>> Jan Hubicka wrote: >>> >>> >Sure if it works, we should be lowering the types during gimplification >>> >so we don't need to store all this in memory... >>> >But C++ FE still use its local data later in stuff like thunks, but we >>> >will need to cgraphize them anyway. >>> >>> I agree. The only use of language-specific DECLs and TYPEs after >>> gimplification should be for generating debug information. And if >>> that's already been done, then you shouldn't need it at all. >> >> For LTO with debug info we will probably need some frontend neutral >> debug info representaiton in longer run, since optimization modifying >> the data types and such will need to compensate. >> >> We can translate stuff to in-memory dwarf and update it but that would >> limit amount of debug info format we will want to support probably. > DWARF is not exactly memory or space efficient, sadly. > Then again, what most other compilers have done is bite the bullet > and define their own "debug info" data, then transform that to dwarf2 > at the very end. > I"m not sure we want to do that either :(
What we can do is identify the frontend-specific information that is used at debug-generation time and simply move them to the middle-end. OTOH I don't see why debug-information for the modified types need to be frontend-specific at all... so I'd be pragmatic and emit debug information early for all decls and types and for changed types just re-emit them with middle-end only information. RIchard.