Добавление метаданных к инструкциям в LLVM IR

Во-первых, я новичок в LLVM.

Я пытаюсь добавить метаданные в инструкции в LLVM после прохода преобразования (с C ++ API). Я намерен сохранить эту информацию для использования другим инструментом в цепочке инструментов. У меня есть два вопроса по этому поводу.

Я ожидаю, что информация, которую я храню как метаданные, будет передана другому инструменту, который работает на IR LLVM. Так что метаданные хорошая идея? Я намерен хранить строки как метаданные с некоторыми инструкциями.

Если метаданные - правильный путь, мне нужна помощь в создании узла метаданных. Я планирую использовать функцию setMedata (), чтобы прикрепить ее к инструкции. Какой вариант setMetadata () является правильным для использования. Я не уверен, из какого MDKind должны быть мои данные. Я хочу создать MDString, присоединить его к моему MDNode и затем вызвать setMetadata () с инструкцией. Какой контекст мне следует использовать в setMedata (), если я хочу присоединить метаданные к инструкции внутри функции. Какое отношение имеет контекст к метаданным?

Я пытался прочитать много дискуссий на форумах и в документации dovl llvm, но я не получил четкого и полного ответа на все мои вопросы. Я ценю вашу помощь или некоторые материалы, которые могут помочь мне понять это.

Ответы на вопрос(1)

Ваш ответ на вопрос