public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug gcov-profile/98739] New: -fprofile-reproducible is broken
@ 2021-01-18 23:24 hubicka at gcc dot gnu.org
  2021-01-19  7:59 ` [Bug gcov-profile/98739] " rguenth at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-01-18 23:24 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

            Bug ID: 98739
           Summary: -fprofile-reproducible is broken
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: gcov-profile
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hubicka at gcc dot gnu.org
                CC: marxin at gcc dot gnu.org
  Target Milestone: ---

-fprofile-reproducible=serial leads to:

jan@skylake:~> gcc -O2 -fprofile-reproducible=serial 
gcc: error: unknown profile reproducibility method ‘=serial’
gcc: note: valid arguments to ‘-fprofile-reproducible’ are: multithreaded
parallel-runs serial; did you mean ‘serial’?
gcc: fatal error: no input files
compilation terminated.

-fprofile-reproducibleserial is accepted but I think the implementation is
broken.  I think it is not enough to ignore -1 in first counter.  It is also
necessary to update the merge function to do right thing if I recall correctly.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
@ 2021-01-19  7:59 ` rguenth at gcc dot gnu.org
  2021-01-19  9:18 ` marxin at gcc dot gnu.org
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-01-19  7:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unknown                     |11.0

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
fprofile-reproducible
Common Joined RejectNegative Var(flag_profile_reproducible)
Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
-fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level
of reproducibility of profile gathered by -fprofile-generate.

should be

fprofile-reproducible=
Common ...

which means we have zero test coverage for this ...

Above leaves aside any implementation issue, of course.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
  2021-01-19  7:59 ` [Bug gcov-profile/98739] " rguenth at gcc dot gnu.org
@ 2021-01-19  9:18 ` marxin at gcc dot gnu.org
  2021-01-19  9:18 ` marxin at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-01-19  9:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2021-01-19
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
To be honest I tend to remove the option -fprofile-reproducible.
In the current master, I implemented dynamic allocation for TOP N counters
(with the maximum number of 32 tracked values) and so the reproducibility
should be much better now. The implementation uses linked list with atomic
updates, so even threaded programs should handle profile nicer.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
  2021-01-19  7:59 ` [Bug gcov-profile/98739] " rguenth at gcc dot gnu.org
  2021-01-19  9:18 ` marxin at gcc dot gnu.org
@ 2021-01-19  9:18 ` marxin at gcc dot gnu.org
  2021-01-22 13:21 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-01-19  9:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |marxin at gcc dot gnu.org
             Status|NEW                         |ASSIGNED
   Target Milestone|---                         |11.0

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2021-01-19  9:18 ` marxin at gcc dot gnu.org
@ 2021-01-22 13:21 ` cvs-commit at gcc dot gnu.org
  2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-22 13:21 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:b46027c6544d3680b3647d3c771c9844b8b95772

commit r11-6856-gb46027c6544d3680b3647d3c771c9844b8b95772
Author: Martin Liska <mliska@suse.cz>
Date:   Fri Jan 22 14:00:30 2021 +0100

    Drop time profile for multi-threaded training run.

    gcc/ChangeLog:

            PR gcov-profile/98739
            * profile.c (compute_value_histograms): Drop time profile for
            -fprofile-reproducible=multithreaded.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2021-01-22 13:21 ` cvs-commit at gcc dot gnu.org
@ 2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
  2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-25 12:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:5089df534b85b795bfcdca8f4f1957ad15a60558

commit r11-6891-g5089df534b85b795bfcdca8f4f1957ad15a60558
Author: Martin Liska <mliska@suse.cz>
Date:   Fri Jan 22 11:27:16 2021 +0100

    Restore profile reproducibility.

    gcc/ChangeLog:

            PR gcov-profile/98739
            * common.opt: Add missing sign symbol.
            * value-prof.c (get_nth_most_common_value): Restore handling
            of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
            PROFILE_REPRODUCIBILITY_MULTITHREADED.

    libgcc/ChangeLog:

            PR gcov-profile/98739
            * libgcov-merge.c (__gcov_merge_topn): Mark when merging
            ends with a dropped counter.
            * libgcov.h (gcov_topn_add_value): Add return value.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
@ 2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
  2021-01-26 11:47 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-25 12:31 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:e05a117dc4b98f3ac60851608f532ba7cee7343a

commit r11-6892-ge05a117dc4b98f3ac60851608f532ba7cee7343a
Author: Martin Liska <mliska@suse.cz>
Date:   Fri Jan 22 15:36:11 2021 +0100

    Enable -fprofile-reproducible=parallel-runs for profiledbootstrap.

    ChangeLog:

            PR gcov-profile/98739
            * Makefile.in: Enable -fprofile-reproducible=parallel-runs
            for profiledbootstrap.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
@ 2021-01-26 11:47 ` cvs-commit at gcc dot gnu.org
  2021-01-26 11:50 ` cvs-commit at gcc dot gnu.org
  2021-01-26 11:50 ` marxin at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-26 11:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Liska <marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:d40b21eebc9d41c3cb9ccbdf6338968436550621

commit r11-6910-gd40b21eebc9d41c3cb9ccbdf6338968436550621
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jan 26 12:44:34 2021 +0100

    libgcov: improve profile reproducibility

    libgcc/ChangeLog:

            PR gcov-profile/98739
            * libgcov.h (gcov_topn_add_value): Do not train when
            we have a merged profile with a negative number of total
            value.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2021-01-26 11:47 ` cvs-commit at gcc dot gnu.org
@ 2021-01-26 11:50 ` cvs-commit at gcc dot gnu.org
  2021-01-26 11:50 ` marxin at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-01-26 11:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Martin Liska
<marxin@gcc.gnu.org>:

https://gcc.gnu.org/g:7b7ae189d3ef385b29fa4d5aafa6e01e6111a336

commit r10-9302-g7b7ae189d3ef385b29fa4d5aafa6e01e6111a336
Author: Martin Liska <mliska@suse.cz>
Date:   Tue Jan 26 12:48:35 2021 +0100

    Fix missing equal symbol for -fprofile-reproducible opt.

    gcc/ChangeLog:

            PR gcov-profile/98739
            * common.opt: Add missing equal symbol.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gcov-profile/98739] -fprofile-reproducible is broken
  2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2021-01-26 11:50 ` cvs-commit at gcc dot gnu.org
@ 2021-01-26 11:50 ` marxin at gcc dot gnu.org
  8 siblings, 0 replies; 10+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-01-26 11:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98739

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
Fixed on master and I've also fixed the broken option for GCC 10.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-01-26 11:50 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-18 23:24 [Bug gcov-profile/98739] New: -fprofile-reproducible is broken hubicka at gcc dot gnu.org
2021-01-19  7:59 ` [Bug gcov-profile/98739] " rguenth at gcc dot gnu.org
2021-01-19  9:18 ` marxin at gcc dot gnu.org
2021-01-19  9:18 ` marxin at gcc dot gnu.org
2021-01-22 13:21 ` cvs-commit at gcc dot gnu.org
2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
2021-01-25 12:31 ` cvs-commit at gcc dot gnu.org
2021-01-26 11:47 ` cvs-commit at gcc dot gnu.org
2021-01-26 11:50 ` cvs-commit at gcc dot gnu.org
2021-01-26 11:50 ` marxin at gcc dot gnu.org

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).