<span style>Hi Preston, </span><br><br><div class="gmail_quote">On Wed, Mar 21, 2012 at 2:40 AM, Preston Briggs <span dir="ltr"><<a href="mailto:preston.briggs@gmail.com">preston.briggs@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Shanmuhka wrote:<br>
> I looked at the sanjoys patch for SIV Test. And i figured out that this is exactly what i need.<br>
> as the comments said, check if subscript A can possibly have the same value as B in analyseSIV(A,B)<br>
> but i didn't get How to use this information ?<br>
><br>
> lets just say in the above program<br>
> When i use depends function it shows the dependency from load of x to store in x. similarily for array a.<br>
> but how can i be sure that there is no dependence from store of x to load of x in the next iteration ?<br>
<br>
</div>LoopDependenceAnalysis isn't really ready for use yet.<br>
When it is ready, you would be able to ask explicitly:<br>
<br>
    Is there a dependence from the store of x to (one of) the loads of x?<br>
<br>
For your example, it would tell you that no such dependence exists.<br></blockquote><div><br></div><div><span style>Its not showing no such dependence exist.</span></div><div style>I am new to llvm.</div><div style>So i dont know how to use it properly.</div>
<div style>could you please tell me how do i use it? </div><div style><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Preston<br>
<div class="im"><br>
<br>
> On Thu, Mar 15, 2012 at 11:28 AM, shanmuk rao <<a href="mailto:shanmuk.rao008@gmail.com">shanmuk.rao008@gmail.com</a>> wrote:<br>
>><br>
>> Hi,<br>
>> I am using LLVM for implementing LoopFission pass.<br>
>> I am using LoopPass.<br>
>> I know that for checking circular dependency in loop I have to use LoopDependenceAnalysis<br>
>><br>
>> This is what i want to do.<br>
>>         for(int i = 0; i< n ; i++){<br>
>><br>
>> s1 :                 a[i] = a[i] + x[i];<br>
>> s2 :                 x[i] = x[i+1] + i*2 ;<br>
>>         }<br>
>><br>
>> /**there is no dependence from s2 to s1/<br>
>> so after distribution(it should be) :<br>
>><br>
>>         for(int i = 0; i< n ; i++)<br>
>> s1:                a[i] = a[i] + x[i];<br>
>><br>
>>         for(int i = 0; i< n ; i++)<br>
>> s2:                x[i] = x[i+1] + i*2 ;<br>
>><br>
>><br>
>> but in llvm i couldn't able to find there is no dependency from s2 to s1.<br>
>><br>
>> LoopDependenceAnalyis always gives there is a dependency from every load instructions to every store instructions.<br>
>><br>
>><br>
>> is there any other alternative to LoopDependencyAnalysis ?<br>
<br>
</div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><br><br>......<br>Regards,<br>Shanmukha Rao<br>Compilers lab,<br>Indian Institute of Science, Bangalore.<br><br>