标签: c compiler-construction llvm clang
我正在尝试在LLVM中对数组执行LoopDependenceAnalysis。为此我写了一个LLVM LoopPass。我能够使用GetElementPtr检测数组。我无法确定循环中使用的数组的步幅。
例如,我有一个c代码
int b[10]; for(int i = 0; i < 10; i++) { b[i] = b[i+2]; }
现在在两个数组访问中,第一个数组访问(b [i])的步幅为0,而第二个数据访问的步幅为2.如何确定这些值?