Извлечение базовых блоков / CFG из LLVM / clang на сервере - PullRequest
1 голос
/ 08 февраля 2011

Я начал работать с LLVM, и мне интересно узнать, существует ли программный способ для извлечения графика потока управления и / или базовых блоков из LLVM / clang, чтобы провести некоторый анализ на них.Есть ли способ подключиться к цепочке инструментов и извлечь эту информацию вместо прямой компиляции?Если нет, каковы альтернативы?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2011

LLVM поддерживает проходы плагинов. Было бы просто написать пропуск для передачи любых данных в любом формате.

Однако в LLVM уже есть большой набор проходов анализа и преобразования. Возможно, вы сможете использовать существующую среду LLVM для извлечения необходимых данных после выполнения необходимых этапов анализа.

Взгляните на документы , код , а затем задайте более конкретные вопросы в списке LLVMdev , чтобы получить лучшие ответы.

1 голос
/ 08 февраля 2011

CFG (Control Flow Graph) является чисто частью CLang.

CFG поддерживает посетителей (см. CFG.h ), но вы можете спросить в списке разработчиков CLang, есть липример кода.

...