Можно ли добавить аргументы для определенных пользователем проходов в llvm

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

opt -load /path/to/myplugin.so -mypass -mypass_option input.bc

Однако я не нашел никакого руководства, рассказывающего мне, как это сделать. Поэтому мне интересно, возможно ли это на практике.

Заранее спасибо.

13

Решение

Вы должны использовать Командная строка библиотека, которая поставляется с LLVM. По сути, вы просто помещаете верхнюю часть файла .cpp прохода:

#include "llvm/Support/CommandLine.h"
static cl::opt<string> InputFilename("mypass_option", cl::desc("Specify input filename for mypass"), cl::value_desc("filename"));

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

Для примера, посмотрите на встроенный проход раскручивания петли — он определяет два неподписанных и два логических параметра прямо вверху исходного файла, используя cl::opt<unsigned> а также cl::opt<bool>,

12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]