On 8/23/2022 5:49 AM, Surya Kumari Jangala via Gcc-patches wrote:
sched1: Fix -fcompare-debug issue in schedule_region [PR105586]

In schedule_region(), a basic block that does not contain any real insns
is not scheduled and the dfa state at the entry of the bb is not copied
to the fallthru basic block. However a DEBUG insn is treated as a real
insn, and if a bb contains non-real insns and a DEBUG insn, it's dfa
state is copied to the fallthru bb. This was resulting in
-fcompare-debug failure as the incoming dfa state of the fallthru block
is different with -g. We should always copy the dfa state of a bb to
it's fallthru bb even if the bb does not contain real insns.

2022-08-22  Surya Kumari Jangala  <jskum...@linux.ibm.com>

gcc/
        PR rtl-optimization/105586
        * sched-rgn.cc (schedule_region): Always copy dfa state to
        fallthru block.

gcc/testsuite/
        PR rtl-optimization/105586
        * gcc.target/powerpc/pr105586.c: New test.
Interesting.    We may have stumbled over this bug internally a little while ago -- not from a compare-debug standpoint, but from a "why isn't the processor state copied to the fallthru block" point of view.   I had it on my to investigate list, but hadn't gotten around to it yet.

I think there were requests for ChangeLog updates and a function comment for save_state_for_fallthru_edge.  OK with those updates.

jeff

Reply via email to