Как добавить проход Reg2Mem для addRequired() в LLVM?
Я хочу удалить фи-узлы из моих IR-файлов llvm, поэтому я прочитал, что проход Reg2Mem является решением (почему?).
Я могу легко использовать этот пропуск из opt
инструмент, указав -reg2mem
в качестве аргумента.
Тем не менее, я хочу, чтобы эта функциональность была встроена в мой собственный проход под названием FlattenO
, Поэтому я пытаюсь добавить проход Reg2Mem в качестве обязательной зависимости моего прохода (тогда он должен вызываться автоматически?).
void FlattenO::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<Reg2Mem>();
}
Приведенный выше код не работает, потому что он не может найти проход Reg2Mem. Какие файлы я должен включить, чтобы использовать проход Reg2Mem? Также, пожалуйста, исправьте мой код, чтобы все работало как задумано.