它在llvm中相当于size_t

某些系统库(如malloc strlen)需要或返回size_t作为参数。

  • LLVM IR与这些function交互的正确选择是什么?
  • 选择是编译器的任务吗?
  • LLVM IR是否具有size_t类型?

在LLVM级别,size_t不存在。 它是一个为开发人员的利益而构建的构造,它是对本机类型的类型。 本机类型具有固定的目标体系结构大小,这是编译器在LLVM位代码中表示它们的方式。 所以在x86上,size_t可能被前端视为unsigned long,然后它作为i32写入LLVM(因为LLVM程序集没有无符号类型)。

你可以在llvm中使用size_t ,它是一个正常使用的有效类型。