在LLVM 15中默认启用了opaque pointer,简单来说,opaque pointer即在IR中抹除了指针指向的类型。 例如原有IR: ``` load i64* %p ``` 开启opaque pointer之后的IR: ``` load i64, ptr %p ``` 详细信息见:[OpaquePointers](https://llvm.org/docs/OpaquePointers.html) 由于该项目的类型系统基于LLVM IR提供的类型系统,并没有在前端实现独立的类型系统,因此与opaque pointer不兼容。该项目推荐使用的LLVM版本是14,其他版本并没有进行测试,无法保证可靠性。考虑到修复该BUG的工作量较大,因此计划不进行修复。
在LLVM 15中默认启用了opaque pointer,简单来说,opaque pointer即在IR中抹除了指针指向的类型。
例如原有IR:
开启opaque pointer之后的IR:
详细信息见:OpaquePointers
由于该项目的类型系统基于LLVM IR提供的类型系统,并没有在前端实现独立的类型系统,因此与opaque pointer不兼容。该项目推荐使用的LLVM版本是14,其他版本并没有进行测试,无法保证可靠性。考虑到修复该BUG的工作量较大,因此计划不进行修复。