Какой номер после имени класса в типе llvn? - PullRequest
0 голосов
/ 08 марта 2020

Я получил типы функций в LLVM, передаваемые методом getFunctionType (), когда я их печатаю, тип функции содержит что-то вроде: (%"class.xalanc_1_8::ReusableArenaBlock.10232"*).

Первая часть - это имя класса class.xalanc_1_8::ReusableArenaBlock, как насчет номер. Некоторые из них содержат несколько номеров. Меня интересует использование цифр.

1 Ответ

1 голос
/ 08 марта 2020

Интерфейс (который обычно анализирует язык исходного кода) должен создавать типы LLVM с уникальными именами. Большинство внешних интерфейсов используют имена типов и другие строки из исходного кода для создания имени типа IR, но иногда это (не гарантировано) будет уникальным. Добавление числа - это обычный способ достижения уникальности.

Фактически добавление числа - это то, что делает сам LLVM, если вы создаете определенные типы или много других вещей, и нет ошибки, за исключением того, что ваше запрошенное имя уже занято .

Это не единственный способ избежать конфликтов. Мой собственный код добавляет номера строк из исходного кода в некоторых случаях (но не для типов).

...