On Fri, Feb 22, 2013 at 9:42 AM, Bin.Cheng <amker.ch...@gmail.com> wrote:
> Hi,
> Function get_address_cost in ivopt computes multiplied address cost
> with below code:
>
> First:
>       rat = 1;
>       for (i = 2; i <= MAX_RATIO; i++)
>     if (multiplier_allowed_in_address_p (i, mem_mode, as))
>       {
>         rat = i;
>         break;
>       }
>
> Then:
>       if (rat_p)
>         addr = gen_rtx_fmt_ee (MULT, address_mode, addr,
>                    gen_int_mode (rat, address_mode));
>
> What's the purpose of first iteration? It just finds the first allowed
> ratio in address, causing the generated ADDR always has the minimal
> allowed ratio. Is it right?

Looks like so.

> For target doesn't support multiplied address, the generated ADDR is:
> (MULT reg, 1). The cost generally is equal to address with pure
> register. What's the meaning of this cost?

Look at its uses.

Richard.

> Thanks very much.
>
>
> --
> Best Regards.

Reply via email to