On Mon, Feb 25, 2013 at 8:51 PM, Richard Biener
<richard.guent...@gmail.com> wrote:
> On Mon, Feb 25, 2013 at 11:13 AM, Bin.Cheng <amker.ch...@gmail.com> wrote:
>> On Mon, Feb 25, 2013 at 5:39 PM, Richard Biener

>>
>> Another question about multiplied address is in function
>> multiplier_allowed_in_address_p, it constructs rtx like "(MULT reg1,
>> ratio)" and let backend determine whether multiplied address is
>> allowed. I suspect the code is implemented/tested on x86, since
>> machine like ARM only supports multiplied address with non-null base
>> register, like "base + reg * index". The code causes multiplied
>> address disabled totally for ARM machine.
>> Any comments?
>
> Well - enhance it.  Best without the need to construct an RTX in the
> first place ;)

I will do this along with some other IVOPT improvement. As far as I
can see, constructing RTX and let backend make the decision is a
general method since *_address_p has already implemented in each
backend. Considering it is a backend dependent problem, I don't have
better method other rtx pattern right now (to do this, new code/hook
may be introduced, and they are not neat either).

Of course, the rtx way has it's disadvantage that each backend only
accept its own address pattern.

-- 
Best Regards.

Reply via email to