public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Issue generating GCC coverage report since r14-1625-geba3565ce6d766
@ 2023-06-16 12:51 Martin Jambor
  2023-06-16 14:32 ` Roger Sayle
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Jambor @ 2023-06-16 12:51 UTC (permalink / raw)
  To: GCC Mailing List; +Cc: Roger Sayle

Hello,

we try to build coverage info for GCC for our testsuite and upload it to
https://gcc.opensuse.org/gcc-lcov/ every weekend.  But since patch
r14-1625-geba3565ce6d766 (Add support for stc and cmc instructions in
i386.md) the generation broke down.  However, I don't think there is
something necessarily wrong with that particular commit, at least I
don't see anything suspicious.

I inherited the generating script from Martin Liška and have not really
looked much into it much, but it simply does the following after a fresh
GCC master checkout (I added the --disable-multilib and reduced the
number of languages to reproduce this more quickly):


  ../src/configure --prefix=/home/mjambor/gcc/mine/inst --enable-languages=c,c++ --disable-bootstrap --enable-host-shared --enable-coverage=opt --disable-multilib
  make -j64 && make -j64 -k check
  find gcc/testsuite/ -name '*.gcda' -exec rm -rvf {} \;  # I don't know why the script does this
  lcov -d . --capture --output-file gcc.info


and this last step, since the commit, when processing file
./gcc/insn-attrtab.gcda fails with error:

  geninfo: ERROR: mismatched end line for _Z12get_attr_isaP8rtx_insn at /home/mjambor/gcc/mine/src/gcc/config/i386/i386.md:5776: 5776 -> 8963
          (use "geninfo --ignore-errors mismatch ..." to bypass this error)

I tried looking briefly into the perl sources of lcov and geninfo but I
am afraid I don't have the necessary knowledge of the language and the
tool or the time to properly debug this.  So I am inclined to simply add
--ignore-errors mismatch to lcov options, which avoids the issue, and be
done with it.  Nevertheless, I thought I'd mention this here in case
anyone here has any ideas what can be going wrong.

Thanks,

Martin

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

* RE: Issue generating GCC coverage report since r14-1625-geba3565ce6d766
  2023-06-16 12:51 Issue generating GCC coverage report since r14-1625-geba3565ce6d766 Martin Jambor
@ 2023-06-16 14:32 ` Roger Sayle
  2023-06-25 20:11   ` Martin Jambor
  0 siblings, 1 reply; 3+ messages in thread
From: Roger Sayle @ 2023-06-16 14:32 UTC (permalink / raw)
  To: 'Martin Jambor'; +Cc: 'GCC Mailing List'


Hi Martin,
It's great to hear from you.  My apologies for the inconvenience.
I believe that the problem has been solved by Jakub's patch:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;f=gcc/config/i386/i386.md;h=43a3252c42af12ad90082e4088ea58eecd0bf582

I strongly suspect that the problem was that my patch was emitting "(const_int 0)" as
an instruction into the RTL stream, which I'd misunderstood to be recognized as a
no-op by the middle-end.  This isn't the case and the correct idiom is to (also) use:
emit_note (NOTE_INSN_DELETED); DONE;

I can easily believe that this unintended behaviour is/was interfering with your code
coverage scripts (I should study your posted results).

I hope this explains things.  Please let me know if things really are not fixed (or not).
Cheers,
Roger
--

> -----Original Message-----
> From: Martin Jambor <mjambor@suse.cz>
> Sent: 16 June 2023 13:51
> To: GCC Mailing List <gcc@gcc.gnu.org>
> Cc: Roger Sayle <roger@nextmovesoftware.com>
> Subject: Issue generating GCC coverage report since r14-1625-geba3565ce6d766
> 
> Hello,
> 
> we try to build coverage info for GCC for our testsuite and upload it to
> https://gcc.opensuse.org/gcc-lcov/ every weekend.  But since patch
> r14-1625-geba3565ce6d766 (Add support for stc and cmc instructions in
> i386.md) the generation broke down.  However, I don't think there is something
> necessarily wrong with that particular commit, at least I don't see anything
> suspicious.
> 
> I inherited the generating script from Martin Liška and have not really looked
> much into it much, but it simply does the following after a fresh GCC master
> checkout (I added the --disable-multilib and reduced the number of languages to
> reproduce this more quickly):
> 
> 
>   ../src/configure --prefix=/home/mjambor/gcc/mine/inst --enable-
> languages=c,c++ --disable-bootstrap --enable-host-shared --enable-coverage=opt
> --disable-multilib
>   make -j64 && make -j64 -k check
>   find gcc/testsuite/ -name '*.gcda' -exec rm -rvf {} \;  # I don't know why the
> script does this
>   lcov -d . --capture --output-file gcc.info
> 
> 
> and this last step, since the commit, when processing file ./gcc/insn-attrtab.gcda
> fails with error:
> 
>   geninfo: ERROR: mismatched end line for _Z12get_attr_isaP8rtx_insn at
> /home/mjambor/gcc/mine/src/gcc/config/i386/i386.md:5776: 5776 -> 8963
>           (use "geninfo --ignore-errors mismatch ..." to bypass this error)
> 
> I tried looking briefly into the perl sources of lcov and geninfo but I am afraid I
> don't have the necessary knowledge of the language and the tool or the time to
> properly debug this.  So I am inclined to simply add --ignore-errors mismatch to
> lcov options, which avoids the issue, and be done with it.  Nevertheless, I thought
> I'd mention this here in case anyone here has any ideas what can be going wrong.
> 
> Thanks,
> 
> Martin


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

* RE: Issue generating GCC coverage report since r14-1625-geba3565ce6d766
  2023-06-16 14:32 ` Roger Sayle
@ 2023-06-25 20:11   ` Martin Jambor
  0 siblings, 0 replies; 3+ messages in thread
From: Martin Jambor @ 2023-06-25 20:11 UTC (permalink / raw)
  To: Roger Sayle; +Cc: 'GCC Mailing List'

Hi Roger,

sorry for late reply, rather unexpectedly I found myself traveling last
week.

On Fri, Jun 16 2023, Roger Sayle wrote:
> Hi Martin,
> It's great to hear from you.  My apologies for the inconvenience.
> I believe that the problem has been solved by Jakub's patch:
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;f=gcc/config/i386/i386.md;h=43a3252c42af12ad90082e4088ea58eecd0bf582

Unfortunately the situation remains the same, even with the above patch
in master.

The workaround I hoped for (adding --ignore-errors mismatch) does not
help either, the whole process then fails later on.  Perhaps adding
another --ignore-errors elsewhere may fix this, but at the moment I need
to defer playing with this for a few weeks.

Thanks,

Martin


>
> I strongly suspect that the problem was that my patch was emitting "(const_int 0)" as
> an instruction into the RTL stream, which I'd misunderstood to be recognized as a
> no-op by the middle-end.  This isn't the case and the correct idiom is to (also) use:
> emit_note (NOTE_INSN_DELETED); DONE;
>
> I can easily believe that this unintended behaviour is/was interfering with your code
> coverage scripts (I should study your posted results).
>
> I hope this explains things.  Please let me know if things really are not fixed (or not).
> Cheers,
> Roger
> --
>
>> -----Original Message-----
>> From: Martin Jambor <mjambor@suse.cz>
>> Sent: 16 June 2023 13:51
>> To: GCC Mailing List <gcc@gcc.gnu.org>
>> Cc: Roger Sayle <roger@nextmovesoftware.com>
>> Subject: Issue generating GCC coverage report since r14-1625-geba3565ce6d766
>> 
>> Hello,
>> 
>> we try to build coverage info for GCC for our testsuite and upload it to
>> https://gcc.opensuse.org/gcc-lcov/ every weekend.  But since patch
>> r14-1625-geba3565ce6d766 (Add support for stc and cmc instructions in
>> i386.md) the generation broke down.  However, I don't think there is something
>> necessarily wrong with that particular commit, at least I don't see anything
>> suspicious.
>> 
>> I inherited the generating script from Martin Liška and have not really looked
>> much into it much, but it simply does the following after a fresh GCC master
>> checkout (I added the --disable-multilib and reduced the number of languages to
>> reproduce this more quickly):
>> 
>> 
>>   ../src/configure --prefix=/home/mjambor/gcc/mine/inst --enable-
>> languages=c,c++ --disable-bootstrap --enable-host-shared --enable-coverage=opt
>> --disable-multilib
>>   make -j64 && make -j64 -k check
>>   find gcc/testsuite/ -name '*.gcda' -exec rm -rvf {} \;  # I don't know why the
>> script does this
>>   lcov -d . --capture --output-file gcc.info
>> 
>> 
>> and this last step, since the commit, when processing file ./gcc/insn-attrtab.gcda
>> fails with error:
>> 
>>   geninfo: ERROR: mismatched end line for _Z12get_attr_isaP8rtx_insn at
>> /home/mjambor/gcc/mine/src/gcc/config/i386/i386.md:5776: 5776 -> 8963
>>           (use "geninfo --ignore-errors mismatch ..." to bypass this error)
>> 
>> I tried looking briefly into the perl sources of lcov and geninfo but I am afraid I
>> don't have the necessary knowledge of the language and the tool or the time to
>> properly debug this.  So I am inclined to simply add --ignore-errors mismatch to
>> lcov options, which avoids the issue, and be done with it.  Nevertheless, I thought
>> I'd mention this here in case anyone here has any ideas what can be going wrong.
>> 
>> Thanks,
>> 
>> Martin

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

end of thread, other threads:[~2023-06-25 20:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-16 12:51 Issue generating GCC coverage report since r14-1625-geba3565ce6d766 Martin Jambor
2023-06-16 14:32 ` Roger Sayle
2023-06-25 20:11   ` Martin Jambor

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