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. >Thanks, >Wei.