> On Tue, Jul 26, 2022 at 4:13 PM Eugene Rozenfeld via Gcc
> <gcc@gcc.gnu.org> wrote:
> >
> > Hello GCC community.
> >
> > I started this thread on the state of AutoFDO in GCC more than a year ago. 
> > Here is the first message in the thread: 
> > https://gcc.gnu.org/pipermail/gcc/2021-April/235860.html
> >
> > Since then I committed a number of patches to revive AutoFDO in GCC:
> >
> > Fix a typo in an AutoFDO error 
> > string<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=23691ddd3aa3ffe55892b2bff54f9a15a89de2b4>
> > Update gen_autofdo_event.py and 
> > gcc-auto-profile.<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=01d402c5e0ac1ddf5618bbe316b50067625fda46>
> > Fixes for AutoFDO 
> > tests<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f9ad3d5339faaaed6e15a7b27d90fbc66eb72f37>
> > Fix indir-call-prof-2.c with 
> > AutoFDO<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0ed093c7c3f755bc1cd80e5186abeb2f5c50ee0c>
> > Fixes for AutoFDO 
> > testing<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=9265b378531391498ec1727f67a45da72a6c07e9>
> > Fix indirect call inlining with 
> > AutoFDO<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=285aa6895d479bed8e72ad363290846645b6faa0>
> > Improve AutoFDO count propagation 
> > algorithm<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3d9e6767939e9658260e2506e81ec32b37cba041>
> > AutoFDO: don't set param_early_inliner_max_iterations to 
> > 10.<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c17975d81aaed49ff759c20c68b31304a6953d58>
> > AutoFDO: Don't try to promote indirect calls that result in recursive 
> > direct 
> > calls<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ba125745d9e9fe90a18a2af8701b3269c5fdd468>
> > Fix profile count maintenance in vectorizer 
> > peeling.<https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5af22024f62f1f596a35d3c138d41d47d5697ca0>
> >
> > I also made a number of fixes and improvements to create_gcov tool in 
> > https://github.com/google/autofdo .
> >
> > AutoFDO in GCC is in a much better shape now.
> >
> > I have a further set of patches that improve DWARF discriminator support in 
> > GCC and enable AutoFDO to use discriminators. It's based on commits in an 
> > old Google vendor branch as described in Andi's mail below
> > but uses a different approach for keeping track of per-instruction 
> > discriminators.
> >
> > I submitted the first (and the biggest) of these patches almost 2 months 
> > ago on June 2: 
> > https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5af22024f62f1f596a35d3c138d41d47d5697ca0
> > but only got a review from Andi 
> > (https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596549.html) who is 
> > not allowed to approve patches for commit. I pinged gcc-patches twice with 
> > no success.
> >
> > I would appreciate help in getting a review on this patch so that I can get 
> > it committed and submit patches that depend on it.
> 
> Hi, Eugene
> 
> Thanks for your efforts to fix and improve AutoFDO in GCC.  I believe
> that part of the difficulty with obtaining a review of the patches is
> that the original authors have dispersed and no one in the GCC
> community officially is the maintainer for the feature.  Because you
> seem to be one of the primary users and developers, would you be
> interested to take on the responsibility of maintaining the
> AutoFDO-specific portions of the code, with guidance and mentorship
> from other GCC maintainers, especially the ones responsible for gcov
> and PDO?

I missed the patches (it would help to add me to CC :) and will review
the FDO/profile facing parts.  Since it also extends debug info
generation and front-ends I think we also need reviewer for that part.

Having auto-FDO co-maintainer would be welcome.

Honza
> 
> Thanks, David
> 
> >
> > Thank you,
> >
> > Eugene
> >
> > -----Original Message-----
> > From: Andi Kleen <a...@linux.intel.com>
> > Sent: Monday, May 10, 2021 10:21 AM
> > To: Joseph Myers <jos...@codesourcery.com>
> > Cc: Jan Hubicka <hubi...@ucw.cz>; gcc <gcc@gcc.gnu.org>; Eugene Rozenfeld 
> > <eugene.rozenf...@microsoft.com>
> > Subject: [EXTERNAL] Re: State of AutoFDO in GCC
> >
> > On Mon, May 10, 2021 at 04:55:50PM +0000, Joseph Myers wrote:
> > > On Mon, 10 May 2021, Andi Kleen via Gcc wrote:
> > >
> > > > It's difficult to find now because it was a branch in the old SVN
> > > > that wasn't converted. Sadly the great git conversion was quite lossy.
> > >
> > > All branches and tags, including deleted ones, were converted (under
> > > not-fetched-by-default refs in some cases); the git repository has
> > > everything that might plausibly be useful, omitting only a few things
> > > that would have been meaningless to convert, such as mistaken branch
> > > creations in the root of the repository and the SVN hooks directory.
> > > Use "git ls-remote git://gcc.gnu.org/git/gcc.git" to see the full list
> > > of over 5000 refs available in the repository (or do a clone with
> > > --mirror to fetch them all).
> >
> > Okay thanks. I don't see them in any of the web interfaces, neither on
> > https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fgit%2Fgitweb.cgi%3Fp%3Dgcc.git&amp;data=04%7C01%7CEugene.Rozenfeld%40microsoft.com%7C9d79b87018f24bcbf8cc08d913d80bd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637562640903545786%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=ts53XULDtR3o7fevlntCJdtzRqTo9R85LrxJ0ZfOBnE%3D&amp;reserved=0
> > nor on
> > https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgcc-mirror%2Fgcc&amp;data=04%7C01%7CEugene.Rozenfeld%40microsoft.com%7C9d79b87018f24bcbf8cc08d913d80bd0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637562640903545786%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=%2FPGF3vy3hD1OwiXmWzkUnOt9%2BR3YArZw0kCVueOKYpc%3D&amp;reserved=0
> > but
> > git fetch origin vendors/google/heads/gcc-4_8 does the trick for fetching 
> > the commits, but not the symbolic branches.
> >
> > Anyways with that it looks like the discriminator changes are:
> >
> > commit fd9de90d750e3588b1e5a218b28102b6c8bb8434
> > Author: Dehao Chen <de...@gcc.gnu.org<mailto:de...@gcc.gnu.org>>
> > Date:   Thu Oct 10 14:39:31 2013 +0000
> >
> >     Use only lineno+discriminator (remove the callee function name) as the 
> > key to represent callsite. Because each callsite will have its 
> > discriminator if in the same line.
> >
> >     2013-10-10  Dehao Chen  <de...@google.com<mailto:de...@google.com>>
> >
> >             * gcc/auto-profile.c (get_function_instance_by_decl): Remove
> >             callee_name from callsite.
> >             (read_function_instance): Likewise.
> >
> >     From-SVN: r203379
> >
> > commit 3987da76affbfbe7195c0a16b33beedc649ec14f
> > Author: Dehao Chen <de...@gcc.gnu.org<mailto:de...@gcc.gnu.org>>
> > Date:   Tue Aug 27 16:46:49 2013 +0000
> >
> >     Refactor AutoFDO to:
> >
> >     1. Now that we have discriminator for inlined callsite, we do not need 
> > special handling for callsite location any more.
> >     2. If a source line is mapped to multiple BBs, only the first BB will 
> > be annotated.
> >     3. Before actual annotation, mark everythin BB/edge as not annotated.
> >
> >     2013-08-27  Dehao Chen  <de...@google.com<mailto:de...@google.com>>
> >
> >             * gcc/auto-profile.c (location_set): New data structure.
> >             (get_count_info): Add new parameter.
> >             (get_combined_location): Remove unused parameter.
> >             (get_inline_stack): Remove unused parameter.
> >             (afdo_get_bb_count): Add new parameter.
> >             (afdo_annotate_cfg): Reset annotated flags.
> > commit 1e6c4a7a8fb8e20545bb9f9032d3854f3f794c18
> > Author: Dehao Chen <de...@gcc.gnu.org<mailto:de...@gcc.gnu.org>>
> > Date:   Thu Aug 22 17:20:29 2013 +0000
> >
> >     Set discriminator for call stmts within a same basic block.
> >
> >     2013-08-22  Dehao Chen  <de...@google.com<mailto:de...@google.com>>
> >
> >             * gcc/tree-cfg.c (assign_discriminators): assign discriminator 
> > for
> >             call stmt in a same BB if it is mapped to a same line.
> >
> > commit b0be0175f4cf18fdd77bb013b181eead3a0a4773
> > Author: Dehao Chen <de...@gcc.gnu.org<mailto:de...@gcc.gnu.org>>
> > Date:   Mon Aug 19 21:26:33 2013 +0000
> >
> >     Fix the discriminator assignment bug during hashing.
> >
> >     2013-08-19  Dehao Chen  <de...@google.com<mailto:de...@google.com>>
> >
> >             * tree-cfg.c (next_discriminator_for_locus): Fix discriminator
> >             assignment bug.
> >
> >     From-SVN: r201857
> > commit 9fa26998a63d4b22b637ed8702520819e408a694
> > Author: Dehao Chen <de...@gcc.gnu.org<mailto:de...@gcc.gnu.org>>
> > Date:   Mon Aug 19 20:16:47 2013 +0000
> >
> >     Add discrminator for inlined callsites.
> >
> >     2013-08-19  Dehao Chen  (de...@google.com<mailto:de...@google.com>)
> >
> >             * include/dwarf2.def (DW_AT_GNU_discriminator): New attribute.
> >             * gcc/dwarf2out.c (add_call_src_coords_attributes): Emit 
> > discriminator
> >             attribute for inlined callsite.
> >
> >     From-SVN: r201856
> >
> > -Andi
> >

Reply via email to