Выбор DAG из LLVM IR?

Я получил LLVM-IR через

clang -S -emit-llvm demo.c

гдеdemo.cкак следует

      int demo(int a, int b){
int c = a+b;
return c;
}

ИК выглядит так

      define dso_local i32 @demo(i32 %0, i32 %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  store i32 %0, i32* %3, align 4
  store i32 %1, i32* %4, align 4
  %6 = load i32, i32* %3, align 4
  %7 = load i32, i32* %4, align 4
  %8 = add nsw i32 %6, %7
  store i32 %8, i32* %5, align 4
  %9 = load i32, i32* %5, align 4
  ret i32 %9
}

отсюда мне нужно только извлечь информацию DAG, независимую от цели, чтобы я мог использовать информацию DAG для своего собственного конвейера. Итак, есть ли способ получить информацию до выбора DAG, или мне нужно написать свой собственный выбор DAG, если да, то каковы эти точные способы столкнуться? любое предложение будет полезно для меня.

Я построил черезcmake -DCMAKE_BUILD_TYPE=Debug .. cmake --build .после компиляции с помощью clang я запускаю файлdemo.llс помощьюllc -fast-isel=false -view-dag-combine1-dags foo.llиllc -debug foo.llно обе команды дают одну и ту же ошибку

0 ответов

Другие вопросы по тегам