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