[LLVMdev] Problem with LoopDependenceAnalysis

Preston Briggs preston.briggs at gmail.com
Thu Mar 15 09:57:00 PDT 2012


Shanmukha Rao wrote:
> 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 LoopDependenceAnalysis ?

LoopDependenceAnalysis is the right tool, but it's not completely implemented.
If you look at the source, you'll see the implementation is just outlined.

I'm working on a more complete implementation, but much work remains.

Preston




More information about the llvm-dev mailing list