This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PR69634] fix debug_insn-inconsistent REG_N_CALLS_CROSSED


On Sat, Feb 06, 2016 at 08:06:18AM -0200, Alexandre Oliva wrote:
> The testcase has a debug insn referencing a pseudo right before an
> insn that modifies the pseudo.
> 
> Without debug insns, REG_N_CALLS_CROSSED was zero for that pseudo, so
> sched_analyze_reg added a dep between the pseudo setter and an earlier
> (lib)call.
> 
> With debug insns, we miscomputed REG_N_CALLS_CROSSED as nonzero
> because of the debug insn, and then no dep was added between the two
> insns.  This was enough to change sched1's decisions about where to
> place the pseudo setter.
> 
> REG_N_CALLS_CROSSED is computed by both regstat_bb_compute_ri and
> regstat_bb_compute_calls_crossed, but although the former skipped
> debug insns, the latter didn't.
> 
> Fixing this inconsistency was enough to fix the -fcompare-debug error.
> 
> Regstrapped on x86_64-linux-gnu and i686-linux-gnu.  Ok to install?

Ok, with nit; thanks.

> for  gcc/ChangeLog
> 
> 	PR target/69634
> 	* regstat.c (regstat_bb_compute_calls_crossed): Disregard
> 	debug insns.
> 
> for  gcc/testsuite/ChangeLog
> 
> 	PR target/69634
> 	* gcc.dg/pr69634.c: New.

> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/pr69634.c
> @@ -0,0 +1,22 @@
> +/* { dg-do compile } */
> +/* { dg-options "-O2 -fno-dce -fschedule-insns -fno-tree-vrp -fcompare-debug" } */
> +/* { dg-additional-options "-Wno-psabi -mno-sse" { target i?86-*-* x86_64-*-* } } */

> +/* { dg-additional-options "-m32" { target x86_64-*-* } } */

Please remove the above line, -m32 should come solely from the user, and enough
people either build i686-linux compilers or test with
RUNTESTFLAGS='--target_board=unix\{-m64,-m32\}' that a regression in here
would be noticed soon.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]