#llvm
Вопрос:
Похоже, LLVM теперь может выдавать DDGS для каждого цикла в функции (https://github.com/llvm/llvm-project/blob/llvmorg-12.0.1/llvm/lib/Analysis/DDGPrinter.cpp).
Я могу генерировать CFG и Callgraph с opt --dot-cfg foo.bc
помощью и с opt --dot-callgraph foo.bc
помощью , но аналогичное opt --dot-ddg-only foo.bc
выполняется, но не генерирует .dot
файл. Я тоже opt -passes=dot-ddg foo.bc
безуспешно пытался.
Есть ли еще opt
один возможный звонок? Или у кого-то есть предложения по другим подобным инструментам?
Используемый код C ( foo.bc
получен с clang -c -emit-llvm foo.c -o foo.bc
помощью ):
void foo(int b[], int c[], int n){
for (int i = 1; i < n; i ) {
b[i] = c[i] b[i-1];
}
}
int main(){
int b[] = {1, 2, 3, 4, 5};
int c[] = {1, 1, 1, 1, 1};
foo(b, c, 5);
}