On Wed, Apr 26, 2017 at 3:32 PM, Bin.Cheng <amker.ch...@gmail.com> wrote:
> On Wed, Apr 26, 2017 at 3:23 PM, Richard Biener
> <richard.guent...@gmail.com> wrote:
>> On Wed, Apr 26, 2017 at 3:37 PM, Bin.Cheng <amker.ch...@gmail.com> wrote:
>>> On Wed, Apr 26, 2017 at 2:32 PM, Richard Biener
>>> <richard.guent...@gmail.com> wrote:
>>>> On Tue, Apr 18, 2017 at 12:52 PM, Bin Cheng <bin.ch...@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.

Thanks,
bin
>
> Thanks,
> bin
>>
>> Richard.
>>
>>> Thanks,
>>> bin
>>>>
>>>> Richard.
>>>>
>>>>> Thanks,
>>>>> bin
>>>>>
>>>>> 2017-04-11  Bin Cheng  <bin.ch...@arm.com>
>>>>>
>>>>>         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
>>>>>         when counting register pressure.
>>>>>
From 9c2d8f5f3b749863bcb9a32ff3a520a8d3eda9f1 Mon Sep 17 00:00:00 2001
From: Bin Cheng <binch...@e108451-lin.cambridge.arm.com>
Date: Tue, 7 Mar 2017 16:26:27 +0000
Subject: [PATCH 26/33] skip-non_int-phi-reg-pressure-20170401.txt

---
 gcc/tree-ssa-loop-ivopts.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index 205d118..8d6adfe 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -5579,6 +5579,10 @@ determine_set_costs (struct ivopts_data *data)
       if (get_iv (data, op))
        continue;
 
+      if (!POINTER_TYPE_P (TREE_TYPE (op))
+         && !INTEGRAL_TYPE_P (TREE_TYPE (op)))
+       continue;
+
       n++;
     }
 
-- 
1.9.1

Reply via email to