我正在玩LLVM,但现在我不得不为类生成代码.
如何使用LLVM创建类功能?
Oak*_*Oak 10
一种简单的方法是创建结构,然后将方法模型化为常规函数,接收指向表示包含类的结构的this指针 - 实质上是指针 - 作为第一个参数.可以通过分配结构然后在分配的数据上调用特殊的初始化函数(实际上是构造函数)来建模分配.
继承可以通过构建一个结构来完成,该结构包含一个特殊的"父"字段(或多个继承的字段),其类型与基类的结构类型相同.
阅读虚拟表格; 我认为他们是最好的起点.您可以基本上找到编译器:
编写一些在C++中使用类的代码,然后使用Clang将其编译为LLVM IR并查看生成的代码.