[llvm] r184684 - LoopVectorize: Add utility class for checking dependency among accesses

Arnold Schwaighofer aschwaighofer at apple.com
Mon Jun 24 11:08:12 PDT 2013


On Jun 24, 2013, at 12:14 PM, Hal Finkel <hfinkel at anl.gov> wrote:

> ----- Original Message -----
>> 
>> On Jun 24, 2013, at 8:14 AM, Benjamin Kramer <benny.kra at gmail.com>
>> wrote:
>> 
>>> On 24.06.2013, at 05:58, Arnold Schwaighofer
>>> <aschwaighofer at apple.com> wrote:
>>> 
>>>> Author: arnolds
>>>> Date: Sun Jun 23 22:55:45 2013
>>>> New Revision: 184684
>>>> 
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=184684&view=rev
>>>> Log:
>>>> LoopVectorize: Add utility class for checking dependency among
>>>> accesses
>>>> 
>>>> This class checks dependences by subtracting two Scalar Evolution
>>>> access
>>>> functions allowing us to catch very simple linear dependences.
>>>> 
>>>> The checker assumes source order in determining whether
>>>> vectorization is safe.
>>>> We currently don't reorder accesses.
>>>> Positive true dependencies need to be a multiple of VF otherwise
>>>> we impede
>>>> store-load forwarding.
>>> 
>>> Any reason for not using the existing DependenceAnalysis?
>> 
>> We can us it once we are reasonability convinced of its correctness.
>> At the moment I am hesitant to just drop it in.
> 
> As I recall, Preston did a good job with the base set of unit tests.
> Maybe we could add a command-line argument that enables using it so that we can start some serious testing? I'd really like to see us, to the extent practical, consolidate around one primary solution to this problem.
> 


Yes this is on my list of things I like to do. I would like to gradually add DependenceAnalysis to the loop vectorizer. Starting off with reviewing the simple tests and enabling them. I like to take an incremental approach. Adding complexity as we go.

This is just a first step (i.e. we are exercising SCEV).




More information about the llvm-commits mailing list