1
我一直在为LLVM编写玩具语言。我想实现的最雄心勃勃的功能是光纤。我已经阅读了很多关于这个问题的内容,我想我对他们传统上的实现有一个模糊的概念。据我所知,光纤通常建模为指令指针和堆栈。 (参见:Golang运行时)有没有办法在LLVM中维护多个堆栈/指令指针?
是否支持异步执行的LLVM支持,具有不同的指令指针?多个堆栈?
我知道LLVM是一个注册机,有没有什么办法可以确保所有的相关数据都保存在堆栈中?和/或一种方法来保存和恢复当前的寄存器状态?
实现这个手工将是一个真正的害虫,所以任何帮助表示赞赏!
关于保存/恢复寄存器状态的问题是一个有趣的问题。尽管它可能值得它自己的问题。 –