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 <mjam...@suse.cz>
> Sent: 16 June 2023 13:51
> To: GCC Mailing List <gcc@gcc.gnu.org>
> Cc: Roger Sayle <ro...@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

Reply via email to