This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH GCC8][28/33]Don't count non-interger PHIs for register pressure
- From: "Richard Biener via gcc-patches" <gcc-patches at gcc dot gnu dot org>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 8 May 2017 13:51:05 +0200
- Subject: Re: [PATCH GCC8][28/33]Don't count non-interger PHIs for register pressure
- Authentication-results: sourceware.org; auth=none
- References: <VI1PR0802MB21768BD089A0E74CD6143825E7190@VI1PR0802MB2176.eurprd08.prod.outlook.com> <CAFiYyc2aoLsDigoU7VwXER=XZ9kBj5VN8reNjongHq+GajnKYw@mail.gmail.com> <CAHFci29vTUKGDz750c0LNa4Rx0rEwY-czZxvfC34ztPyRtHdeA@mail.gmail.com> <CAFiYyc1GwLrE+2dvkfydp+z+to9-aC36fxx0N0g+ZHWkdQ5hYQ@mail.gmail.com> <CAHFci29Tabmda_KT--1tP=bx1P6X_ifU2axtw6d_okaSM0cxwA@mail.gmail.com> <CAHFci29A-sxOVciqwH2MfL54_utXoZOfcysA-u5hULxxwfttXQ@mail.gmail.com>
- Reply-to: Richard Biener <richard dot guenther at gmail dot com>
On Thu, May 4, 2017 at 5:33 PM, Bin.Cheng <amker.cheng@gmail.com> wrote:
> On Wed, Apr 26, 2017 at 3:32 PM, Bin.Cheng <amker.cheng@gmail.com> wrote:
>> On Wed, Apr 26, 2017 at 3:23 PM, Richard Biener
>> <richard.guenther@gmail.com> wrote:
>>> On Wed, Apr 26, 2017 at 3:37 PM, Bin.Cheng <amker.cheng@gmail.com> wrote:
>>>> On Wed, Apr 26, 2017 at 2:32 PM, Richard Biener
>>>> <richard.guenther@gmail.com> wrote:
>>>>> On Tue, Apr 18, 2017 at 12:52 PM, Bin Cheng <Bin.Cheng@arm.com> wrote:
>>>>>> Hi,
>>>>>> Given only integer variables are meaningful for register pressure estimation in IVOPTs,
>>>>>> this patch skips non-integer type PHIs when counting register pressure.
>>>>>> Is it OK?
>>>>>
>>>>> Huh. I suppose it only makes a difference because you are ignoring
>>>>> POINTER_TYPE_P
>>>>> IVs? At least I would be surprised if get_iv returns true for float
>>>>> or vector PHIs (yeah, see
>>>>> early out in get_iv)? So why exclude POINTER_TYPE_P IVs?
>>>> Hmm, but if get_iv returns non-NULL, the phi won't be counted because
>>>> loop is continued? Actually, all IV and invariants are skipped by
>>>> checking get_iv, so this is only to skip floating point phis.
>>>
>>> Err, but AFAICS get_iv will return non-NULL for POINTER_TYPE_P IVs
>>> which you then skip by your added
>>>
>>> + if (!INTEGRAL_TYPE_P (TREE_TYPE (op)))
>>> + continue;
>>>
>>> thus float IVs are always skipped by means if get_iv returning NULL.
>>>
>>> Oh, the get_iv check continues for non-NULL result ... so it makes sense.
>>> But still, why exclude POINTER_TYPE_P non-IV ops?
>> POINTER_TYPE_P is simply an overlook, will update patch.
> Here is updated version picking up POINTER_TYPE_P.
Ok.
Richard.
> Thanks,
> bin
>>
>> Thanks,
>> bin
>>>
>>> Richard.
>>>
>>>> Thanks,
>>>> bin
>>>>>
>>>>> Richard.
>>>>>
>>>>>> Thanks,
>>>>>> bin
>>>>>>
>>>>>> 2017-04-11 Bin Cheng <bin.cheng@arm.com>
>>>>>>
>>>>>> * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
>>>>>> when counting register pressure.
>>>>>>