Я пишу собственный бэкенд для LLVM для цели и не указал никаких подцелей. Я хочу распечатать сборку и пытаюсь реализовать класс MCInstPrinter::ABMCInstPrinter.
Проблема, с которой я столкнулся, заключается в том, что чистая виртуальная функция
virtual void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot,
const MCSubtargetInfo &STI) = 0;
принимает аргумент STI типа MCSubtargetInfo. Я новичок в LLVM, поэтому я просто не понимаю всей структуры классов MC Layer, но подразумевает ли аргумент MCSubtargetInfo, что мне нужно определить ABCSubtarget, чтобы иметь возможность печатать сборку? Если нет, то для какой цели служит класс MCSubtargetInfo?
На странице справочника по классам llvm::MCSubtargetInfo из документации LLVM указано следующее: Подробное описание MCSubtargetInfo
Общий базовый класс для всех целевых подцелей.
это еще одна причина, по которой я думаю, что этот класс необходим только для целей, у которых есть подцели, но, несмотря на это, есть аргумент этого типа для чистой виртуальной функции при печати сборки.
Действительно ли мне нужна реализация ABCSubtarget для моей серверной части для печати?
Любые советы в правильном направлении приветствуются. Спасибо за помощь.