From: Jan Hubicka <hubicka@ucw.cz>
To: Rishi Raj <rishiraj45035@gmail.com>
Cc: rguenther@suse.de, gcc-patches@gcc.gnu.org,
Martin Jambor <mjambor@suse.cz>
Subject: Re: [PATCH][WIP] dwarf2out: extend to output debug section directly to object file during debug_early phase
Date: Mon, 23 Oct 2023 17:22:10 +0200 [thread overview]
Message-ID: <ZTaPogUbTS2nd9Jq@kam.mff.cuni.cz> (raw)
In-Reply-To: <CA+1a67OWQi4M9a0X_FWjV1M-_53NWKEvx_m5=6f6+HE+BC-hSw@mail.gmail.com>
> > > + output_data_to_object_file (1, 0);
> > > + output_data_to_object_file (1, 0);
> >
> > So this basically renames dw2_asm_output_data to
> > output_data_to_object_file and similarly for other output functions.
> >
> > What would be main problems of making dw2_asm_* functions to do the
> > right thing when outputting to object file?
> > Either by conditionals or turning them to virtual functions/hooks as
> > Richi suggested?
> >
> I think it's doable via conditionals. Can you explain the second approach
> in more detail?
Basically you want to have output functions
like dw2_asm_output_data to do the right thing and either store
it to the LTO simple object section or the assembly file.
So either we can add conditionals to every dw2_asm_* function needed
of the form
if (outputting_to_lto)
... new code ...
else
... existing code ...
Or have a virtual table with two different dw2_asm implementations.
Older GCC code uses hooks which is essencially a structure holding
function pointers, mostly because it was implemented before we converted
source base to C++. Some newer code uses virtual functions for this.
> > > +struct lto_simple_object
> > lto_simple_object is declared in lto frontend. Why do you need to
> > duplicate it here?
> >
> > It looks like adding relocations should be abstracted by lto API,
> > so you don't need to look inside this structure that is
> > lto/lto-object.cc only.
> >
> I should have taken this approach, but instead, I exposed simple objects to
> dwarf2out.
> That's the reason to duplicate the above struct. I will take care of this
> while refactoring
> and abstracting it by lto API
Yep, this should not be hard to do.
Thanks for all the work!
Honza
>
>
> >
> > > +/* Output one line number table into the .debug_line section. */
> > > +
> > > +static void
> > > +output_one_line_info_table (dw_line_info_table *table)
> > It is hard to tell from the diff. Did you just moved these functions
> > earlier in source file?
> >
> Yeah. I will refactor the dwarf2out soon to clear these confusions.
>
> --
> Rishi
>
>
> >
> > Honza
> >
prev parent reply other threads:[~2023-10-23 15:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-23 3:36 Rishi Raj
2023-10-23 12:48 ` Jan Hubicka
2023-10-23 13:15 ` Rishi Raj
2023-10-23 15:22 ` Jan Hubicka [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZTaPogUbTS2nd9Jq@kam.mff.cuni.cz \
--to=hubicka@ucw.cz \
--cc=gcc-patches@gcc.gnu.org \
--cc=mjambor@suse.cz \
--cc=rguenther@suse.de \
--cc=rishiraj45035@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).