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] Externalize data-ref analysis - part 1

Daniel Berlin <> wrote on 06/07/2005 18:33:43:
> 1. Correct me if i'm wrong, but it looks like some fields are valid on
> array references but not pointer references, and vice versa.
> If this is true, we should probably add an enum to tell what kind of
> reference something is (pointer or array), instead of checking whether
> certain fields are null, etc.  This would also enable us to make sure
> nobody is trying to use fields on pointer references or array references
> that are not valid.
> 2. You added an alignment parameter to find_data_references_in_loop and
> downward, but it's not documented in find_data_references_in_loop.
> It's also very unclear what it is.
> The only docs in the lower functions is "The required alignment in
> bytes".
> Required for what, exactly?
> If this is information about what the vectorizer requires in terms of
> alignment for a given loop, that should not be passed to this generic
> function. *That* part (and whatever misalignment info it needs) should
> be computed separately by the vectorizer.

Here is a patch (part 1 and 2) that addresses the above comments (and also
this one

Alignment is no longer passed to find_data_references_in_loop. Alignment of
data-ref is now represented (in data reference structure) by two fields
MISALIGNMENT and ALIGNED_TO. Since during the computation the required
alignment is unknown, we record the biggest possible alignment in
ALIGNED_TO and then check it in the vectorizer.

Another comment from Daniel was that this patch also makes ltrans-8.c from
autovect branch work on mainline.


(See attached file:

Description: Binary data

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