Сейчас мы реализуем анализ прохода для LLVM, следующий этот урок. и необходимо передать дополнительный аргумент плагину, например ниже:
opt -load /path/to/myplugin.so -mypass -mypass_option input.bc
Однако я не нашел никакого руководства, рассказывающего мне, как это сделать. Поэтому мне интересно, возможно ли это на практике.
Заранее спасибо.
Вы должны использовать Командная строка библиотека, которая поставляется с 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>
,
Других решений пока нет …