Во-первых, я новичок в передачах LLVM.
Я пытаюсь добавить метаданные к инструкциям в LLVM после прохождения преобразования (с С++ API). Я намерен хранить эту информацию для использования другим инструментом в цепочке инструментов. У меня есть два вопроса относительно этого.
-
Я ожидаю, что информация, которую я храню в качестве метаданных, передается в другой инструмент, который работает на LLVM IR. Значит, метаданные - хорошая идея? Я намерен хранить строки как метаданные с некоторыми инструкциями.
-
Если метаданные - это правильный путь, мне нужна помощь в создании метаданных node. Я планирую использовать функцию setMedata() для присоединения к инструкции. Какой вариант setMetadata() является правильным для использования. Я не уверен, в каких MDKind должны быть мои данные. Я хочу создать MDString, прикрепить его к моему MDNode, а затем вызвать setMetadata() с инструкцией. Какой контекст следует использовать в setMedata(), если я хочу приложить метаданные к инструкции внутри функции. Какова актуальность контекста для метаданных?
Я пробовал читать много дискуссий на форумах и документах llvm doxygen, но я не получил четкого и полного ответа на все мои вопросы. Я ценю вашу помощь или какой-то материал, который мог бы помочь мне понять это.