[PATCH Atom] Fix for PR target/50962 (bad AGU stall avoidance)

Ilya Enkovich enkovich.gnu@gmail.com
Sun Nov 6 11:19:00 GMT 2011


Hi,

2011/11/5 Richard Henderson <rth@redhat.com>:
>> +  if (!TARGET_OPT_AGU || optimize_function_for_size_p (cfun))
>
> Surely optimize_insn_for_size_p (), so that cold blocks are optimized for size.
OK.

>> +      else if (ix86_use_lea_for_mov(insn, operands))
>> +     return "lea{q}\t{%a1, %0|%0, %a1}";
>
> We're now getting the insn type and thus length wrong.
>
> Seems like a better change is
>
>
>        ...
>            (eq_attr "alternative" "16,17")
>              (const_string "ssecvt")
>            (match_operand 1 "pic_32bit_operand" "")
>              (const_string "lea")
> +           (match_test "ix86_use_lea_for_mov (insn)")
> +             (const_string "lea")
>           ]

It would be great to have computed type here but ix86_use_lea_for_mov
will check types of other instructions and then call
extract_insn_cached. It will cause infinite loop, right?

> (Or something; can't be bothered to double-check that match_test is
> the right thing to use here.)
>
> Which will automatically use the proper mnemonic, and also get the
> instruction length right.
>
>
> r~
>

Ilya



More information about the Gcc-patches mailing list