+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.
+
2013-05-31 Eric Botcazou <ebotcazou@adacore.com>
* config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
/* 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)
+ flush_pending_lists (deps, insn, true, true);
+ add_insn_mem_dependence (deps, true, insn, x);
+ }
sched_analyze_2 (deps, XEXP (x, 0), insn);