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."

Reply via email to