This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix PR57268
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Dinar Temirbulatov <dinar at kugelworks dot com>, Jeff Law <law at redhat dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>, Steven Bosscher <stevenb dot gcc at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 1 Jun 2013 14:55:21 +0200
- Subject: Re: Fix PR57268
- References: <CANoaTN01FcHx-OQLujvAwD6N8A0f_7UOzcY1_5DofqABTycCRQ at mail dot gmail dot com> <CABu31nOekB_O_CR0rmMw6ng3sNc2UFhPQipgO-p5gF=RFHBkPw at mail dot gmail dot com> <51A6156F dot 9090001 at redhat dot com> <CANoaTN27M4nNRBB2xxPKzbPs_NznMzFf43y8wWOuqVy=7sFEuA at mail dot gmail dot com> <CAMe9rOqSfwn_aO2jYWyUxxDfsCWuQmYkokdjBDqRTEsP=HfKOA at mail dot gmail dot com> <CANoaTN1byUjen2uFHyC_AauUzq=f8rwEYhWO2WhSO0SZyk4VWA at mail dot gmail dot com> <20130601081124 dot GY1493 at tucnak dot redhat dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Sat, Jun 01, 2013 at 10:11:24AM +0200, Jakub Jelinek wrote:
> On Sat, Jun 01, 2013 at 08:39:58AM +0400, Dinar Temirbulatov wrote:
> > I am investigating the problem.
>
> I'd guess you don't want to flush on DEBUG_INSN_Ps, because then you'd flush
> differently between -g and -g0. So perhaps something like:
Now bootstrapped/regtested on x86_64-linux and i686-linux. I see you've
already reverted in the mean time, so ok for trunk this way?
2013-06-01 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/57268
* sched-deps.c (sched_analyze_2): Don't flush_pedning_lists
if DEBUG_INSN_P (insn).
Reapply
2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
PR rtl-optimization/57268
* sched-deps.c (sched_analyze_2): Flush dependence lists if
the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
--- gcc/sched-deps.c (revision 199576)
+++ gcc/sched-deps.c (revision 199575)
@@ -2690,8 +2690,15 @@
/* Always add these dependencies to pending_reads, since
this insn may be followed by a write. */
- if (!deps->readonly)
- add_insn_mem_dependence (deps, true, insn, x);
+ if (!deps->readonly)
+ {
+ if ((deps->pending_read_list_length
+ + deps->pending_write_list_length)
+ > MAX_PENDING_LIST_LENGTH
+ && !DEBUG_INSN_P (insn))
+ flush_pending_lists (deps, insn, true, true);
+ add_insn_mem_dependence (deps, true, insn, x);
+ }
sched_analyze_2 (deps, XEXP (x, 0), insn);
Jakub