Maxim Kuvyrkov <maxim.kuvyr...@linaro.org> writes: > @@ -7535,28 +7530,24 @@ ia64_variable_issue (FILE *dump ATTRIBUTE_UNUSED, > can be chosen. */ > > static int > -ia64_first_cycle_multipass_dfa_lookahead_guard (rtx insn) > +ia64_first_cycle_multipass_dfa_lookahead_guard (rtx insn, int ready_index) > { > gcc_assert (insn && INSN_P (insn)); > - return ((!reload_completed > - || !safe_group_barrier_needed (insn)) > - && ia64_first_cycle_multipass_dfa_lookahead_guard_spec (insn) > - && (!mflag_sched_mem_insns_hard_limit > - || !is_load_p (insn) > - || mem_ops_in_group[current_cycle % 4] < ia64_max_memory_insns)); > -} > > -/* We are choosing insn from the ready queue. Return nonzero if INSN > - can be chosen. */ > + /* Size of ALAT is 32. As far as we perform conservative > + data speculation, we keep ALAT half-empty. */ > + if ((TODO_SPEC (insn) & BEGIN_DATA) && pending_data_specs >= 16) > + return ready_index == 0 ? -1 : 1;
$ gcc/xgcc -B gcc/ ../gcc/testsuite/gcc.c-torture/execute/pr51581-1.c -fno-diagnostics-show-caret -fdiagnostics-color=never -w -O3 -fomit-frame-pointer -funroll-loops -c ../gcc/testsuite/gcc.c-torture/execute/pr51581-1.c: In function ‘f1’: ../gcc/testsuite/gcc.c-torture/execute/pr51581-1.c:15:1: internal compiler error: in operator[], at vec.h:736 0x40000000014455af vec<_haifa_insn_data, va_heap, vl_embed>::operator[](unsigned int) ../../gcc/vec.h:736 0x40000000014455af vec<_haifa_insn_data, va_heap, vl_ptr>::operator[](unsigned int) ../../gcc/vec.h:1202 0x40000000014455af ia64_first_cycle_multipass_dfa_lookahead_guard ../../gcc/config/ia64/ia64.c:7539 Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."