This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH GCC][09/13]Simply cost model merges partitions with the same references

On Mon, Jun 19, 2017 at 3:40 PM, Bin.Cheng <> wrote:
> On Wed, Jun 14, 2017 at 2:54 PM, Richard Biener
> <> wrote:
>> On Mon, Jun 12, 2017 at 7:03 PM, Bin Cheng <> wrote:
>>> Hi,
>>> Current primitive cost model merges partitions with data references sharing the same
>>> base address.  I believe it's designed to maximize data reuse in distribution, but
>>> that should be done by dedicated data reusing algorithm.  At this stage of merging,
>>> we should be conservative and only merge partitions with the same references.
>>> Bootstrap and test on x86_64 and AArch64.  Is it OK?
>> Well, I'd say "conservative" is merging more, not less.  For example
>> splitting a[i+1] from a[i]
>> would be bad(?), so I'd see to allow unequal DR_INIT as "equal" for
>> merging.  Maybe
>> DR_INIT within a cacheline or so.
>> How many extra distributions in say SPEC do you get from this change alone?
> Hi,
> I collected data for spec2006 only with/without this patch.  I am a
> bit surprised that it doesn't change the number of distributed loops.
>> It shows also that having partition->reads_and_writes would be nice
>> ...  the code duplication
> Yeah, I merged read/write data references in previous patch, now this
> duplication is gone.  Update patch attached.  Is it OK?

+      gcc_assert (i < datarefs_vec.length ());
+      dr1 = datarefs_vec[i];

these asserts are superfluous -- vec::operator[] does them as well.

Ok if you remove them.


> Thanks.
> bin
> 2017-06-07  Bin Cheng  <>
>     * tree-loop-distribution.c (ref_base_address): Delete.
>     (similar_memory_accesses): Rename ...
>     (share_memory_accesses): ... to this.  Check if partitions access
>     the same memory reference.
>     (distribute_loop): Call share_memory_accesses.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]