如何获取结构的 LLVMTypeRef?

How to get LLVMTypeRef of a struct?

尽管有标签,我实际上使用的是 llvm-sys Rust 库,但我相信 API 应该是相同的。

我正在使用 LLVM 来编译我正在创建的玩具编程语言。在我的语言的 RTS 库中,我有一个结构 MyStruct。在发出的 LLVM 中,这变成

%struct.MyStruct = /* definition of struct */

根据文档,我不清楚我是如何获得与此结构对应的 LLVMTypeRef 的:

let myStructTypeRef: LLVMTypeRef = /* unsure how to write this code */
let myStructVariable: LLVMValueRef = LLVMBuildAlloca(builder, myStructTypeRef, "myStruct");

您使用LLVMGetTypeByName函数

https://llvm.org/doxygen/group__LLVMCCoreModule.html#ga29066e749e093fba6fedb5efa0962177