On Thu, Nov 21, 2013 at 1:01 PM, Richard Biener
<richard.guent...@gmail.com> wrote:
> Wei Mi <w...@google.com> wrote:
>>On Thu, Nov 21, 2013 at 11:36 AM, Richard Biener
>><richard.guent...@gmail.com> wrote:
>>> Wei Mi <w...@google.com> wrote:
>>>>> So what you are doing is basically not only rewriting memory
>>>>references
>>>>> to possibly use TARGET_MEM_REF but also address uses to use
>>>>> &TARGET_MEM_REF.  I think this is a good thing in general
>>>>> (given instructions like x86 lea) and I would not bother
>>>>distinguishing
>>>>> the different kind of uses.
>>>>>
>>>>> Richard.
>>>>>
>>>>
>>>>You mean to change normal expr to &TMR(expr) form in order to utilize
>>>>x86 lea type instructions as much as possible. It is interesting. I
>>>>can experiment that idea later. I am not sure if it could simply
>>work.
>>>>My concern is x86 lea still has some limitation (such as three
>>>>operands lea will have longer latency and can only be issued to
>>>>port1), if we change some expr to &TMR(expr), will it inhitbit cse
>>>>opportunity if codegen find out it is not good to use lea?
>>>
>>> That needs to be determined.  Over all it might be because ivopts
>>runs so early.  At rtl level there should not be big differences apart
>>from better initial address computations.
>>>
>>> Did I misunderstand what your patch does?
>>>
>>> Richard.
>>>
>>
>>My patch wants to address the issue that iv uses using as memory
>>reference actuals for load/store/prefetch builtins are treated as
>>non-linear iv uses instead of address iv uses, and the result of
>>determine_use_iv_cost is wrong. After we change those uses to address
>>uses, less ivs may be used, TMR will be generated for those iv uses
>>and efficent addressing mode could be utilized.
>
> But are not all pointer typed uses address uses?!
>
> Richard.
>

If a pointer typed use is plainly value passed to a func call, it is
not an address use, right? But as you said, x86 lea may help here.

Thanks,
Wei.

Reply via email to