Отображение CFG от llvm в xvcg

Есть -view-cfg опция ( док) в llvm's opt программа, которая позволяет мне просматривать график потока управления через dot программа. Но CFG слишком велик, чтобы его можно было представить как постскриптум из точки. Я знаю, что есть xvcg Утилита способна отображать сложные графики, в том числе CFG (и его человек говорит: "Инструмент VCG - визуализация графиков компилятора").

Итак, как я могу вывести CFG llvm в формате xvcg?

1 ответ

Решение

Непосредственное создание файлов.vcg из LLVM потребует серьезных изменений в GraphWriter, который очень специфичен для GraphViz. Вместо этого мне кажется, что наиболее простым решением будет сохранение файла точек (через -dot-cfg вместо -view-cfg), а затем преобразовать его, используя что-то вроде Graph-Easy. Из его документации (выделено мое):

В качестве входных данных он понимает следующие форматы:

Выходными данными может быть дамп графика в одном из следующих форматов:

Кстати, если вы хотите получить много графиков и предпочитаете их просматривать перед созданием большого количества точечных файлов, рассмотрите возможность использования средства просмотра точек, которое также позволяет вам сохранить файл, например мой форк xdot.py, или еще лучше, изменить xdot.py так что он умеет сохранять в формате.vcg сам, используя Graph-Easy.

Другая альтернатива Graph-Easy - это dot2gdl.

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