[llvm-dev] [RFC] New pass: LoopExitValues

Wei Mi via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 21 22:45:17 PDT 2015


I don't have a very good idea. What I originally thought was just to
skip the case when live range cross loops. However, after a second
thought, for the new live range living across loop2 loop3, because it
has no reference in those loops, it will be splitted outside those
loops if those loops have high reg pressures, so the key is to know
whether the outer loop is hot enough and whether it has high reg
pressure instead of loop2/loop3. In many cases we don't have precise
information about loop hotness and loop reg pressure and have to
guess.

As Hal said, get the patch in first and see what benefit and
regression we get, then think the next step, so that we can move
forward.

Thanks,
Wei.

On Mon, Sep 21, 2015 at 2:45 PM, Steve King <steve at metrokings.com> wrote:
> On Mon, Sep 21, 2015 at 11:13 AM, Wei Mi <wmi at google.com> wrote:
>> I have the same worry as Philip and Hal that the new LoopExitValues
>> pass may increase some live range significantly in certain cases
>> because it reuses value cross outerloop iterations. Like the following
>> hypothetical case, the value reuse will create a live range living
>> across loop2, loop3, .... But we can add some simple logic to obviate
>> such case.
>>
>
> Thanks Wei.  Can you please give your ideas about logic to catch abuse
> of live ranges?


More information about the llvm-dev mailing list