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: Fix PR 56077


On Fri, Apr 05, 2013 at 10:54:48AM +0400, Andrey Belevantsev wrote:
> I am testing the revert of this backport for 4.6 and will commit it
> in about an hour or so.  However, I am surprised we don't hit this

Ok, thanks.

> either on 4.7, 4.8 or trunk.  Some flush_pending_lists calls are
> protected from debug insns as they check CALL_P or JUMP_P, but not
> all of them.  It looks like flush_pending_lists should not be called
> on debug insns at all.  And indeed, the attached patch fixes
> Leonid's test case.
> 
> Jakub, you don't happen to remember any changes in this area that
> could hide the problem for 4.7 and later?

No, but Alex or Vlad could know better.  In any case, perhaps it could be
bisected (I only have x86_64 compilers around for bisecting seed though,
I'm afraid the testcase is mips only and hasn't been even posted).

> *** gcc/sched-deps.c	(revision 197492)
> --- gcc/sched-deps.c	(working copy)
> *************** sched_analyze_insn (struct deps_desc *de
> *** 3044,3050 ****
>   
>         /* Don't flush pending lists on speculative checks for
>   	 selective scheduling.  */
> !       if (!sel_sched_p () || !sel_insn_is_speculation_check (insn))
>   	flush_pending_lists (deps, insn, true, true);
>   
>         if (!deps->readonly)
> --- 3044,3050 ----
>   
>         /* Don't flush pending lists on speculative checks for
>   	 selective scheduling.  */
> !       if (NONDEBUG_INSN_P (insn) && (!sel_sched_p () || !sel_insn_is_speculation_check (insn)))

Too long line.  Start && below NONDEBUG.

>   	flush_pending_lists (deps, insn, true, true);
>   
>         if (!deps->readonly)


	Jakub


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