Проект LLVM не делает различий между целыми числами со знаком и без знака, как описано здесь. Бывают ситуации, когда вам нужно знать, следует ли интерпретировать конкретную переменную как знаковую или как беззнаковую, например, когда она увеличивается по размеру или когда она используется в делении. Мое решение - хранить отдельную информацию о типе для каждой переменной, которая описывает, является ли она целым или кардинальным типом.
Однако мне интересно, нет ли способа таким образом «атрибутировать» тип в LLVM? Я искал какие-то «пользовательские данные», которые можно было бы добавить к типу, но вроде ничего нет. Это должно происходить каким-то образом при создании типа, поскольку одинаковые типы генерируются в LLVM только один раз.
Поэтому мой вопрос:
Есть ли способ отследить, должна ли целочисленная переменная интерпретироваться как подписанная или неподписанная в инфраструктуре LLVM, или это действительно единственный способ хранить отдельную информацию, как это делаю я?
Спасибо