Использование PassManager в llvm 6 - PullRequest
2 голосов
/ 05 июля 2019

Я пытаюсь обновить код llvm 3.6 до llvm 6.0 и не могу узнать, как использовать PassManager в этой версии.

Я использовал следующий код в 3.6:

llvm::PassManager pm;
pm.add(new MyPass);
pm.run();

Этот код отклонен компилятором: ошибка: для объявления переменной 'pm' с выведенным типом 'llvm :: PassManager' требуется инициализатор llvm :: PassManager pm;

Я не понимаю, какой инициализатор требуется, я вижу в источниках LLVM, что PassManager имеет конструктор по умолчанию.

Чего мне не хватает?

1 Ответ

0 голосов
/ 05 июля 2019

Это должно быть llvm::legacy::PassManager вместо llvm::PassManager. Чтобы использовать его, вам нужно включить LegacyPassManager.h. (#include "llvm/IR/LegacyPassManager.h")

llvm::PassManager на самом деле шаблон класса .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...