[LLVMdev] Problem with LoopDependenceAnalysis

Preston Briggs preston.briggs at gmail.com
Tue Mar 20 14:10:37 PDT 2012


Shanmuhka wrote:
> I looked at the sanjoys patch for SIV Test. And i figured out that this is exactly what i need.
> as the comments said, check if subscript A can possibly have the same value as B in analyseSIV(A,B)
> but i didn't get How to use this information ?
>
> lets just say in the above program
> When i use depends function it shows the dependency from load of x to store in x. similarily for array a.
> but how can i be sure that there is no dependence from store of x to load of x in the next iteration ?

LoopDependenceAnalysis isn't really ready for use yet.
When it is ready, you would be able to ask explicitly:

    Is there a dependence from the store of x to (one of) the loads of x?

For your example, it would tell you that no such dependence exists.

Preston


> On Thu, Mar 15, 2012 at 11:28 AM, shanmuk rao <shanmuk.rao008 at gmail.com> wrote:
>>
>> Hi,
>> I am using LLVM for implementing LoopFission pass.
>> I am using LoopPass.
>> I know that for checking circular dependency in loop I have to use LoopDependenceAnalysis
>>
>> This is what i want to do.
>>         for(int i = 0; i< n ; i++){
>>
>> s1 :                 a[i] = a[i] + x[i];
>> s2 :                 x[i] = x[i+1] + i*2 ;
>>         }
>>
>> /**there is no dependence from s2 to s1/
>> so after distribution(it should be) :
>>
>>         for(int i = 0; i< n ; i++)
>> s1:                a[i] = a[i] + x[i];
>>
>>         for(int i = 0; i< n ; i++)
>> s2:                x[i] = x[i+1] + i*2 ;
>>
>>
>> but in llvm i couldn't able to find there is no dependency from s2 to s1.
>>
>> LoopDependenceAnalyis always gives there is a dependency from every load instructions to every store instructions.
>>
>>
>> is there any other alternative to LoopDependencyAnalysis ?




More information about the llvm-dev mailing list