【发布时间】:2015-05-28 23:58:55
【问题描述】:
LLVM 项目不区分有符号和无符号整数,如 here 所述。在某些情况下,您需要知道某个特定变量是否应该被解释为有符号或无符号,例如当它的大小扩展或在除法中使用时。我对此的解决方案是为每个变量保留一个单独的类型信息,描述它是整数还是基数类型。
但是,我想知道,有没有办法以这种方式“归因”LLVM 中的类型?我一直在寻找可以添加到类型中的某种“用户数据”,但似乎什么都没有。这必须在创建类型时以某种方式发生,因为相等的类型在 LLVM 中只生成一次。
因此我的问题是:
有没有办法在 LLVM 基础架构中跟踪整数变量是否应该被解释为有符号或无符号,或者是像我一样保留单独信息的唯一方法?
谢谢
【问题讨论】:
-
如果您正在编写编译器,这通常是您自己在前端维护的信息,独立于 LLVM。
标签: llvm llvm-ir llvm-c++-api