我一直在为 LLVM 编写一种玩具语言。我想要实现的最雄心勃勃的功能是纤维。我已经阅读了很多关于此事的内容,并且我认为我对传统上它们是如何实现的有一个模糊的概念。据我所知,纤维通常被建模为指令指针和堆栈。(参见:Golang 运行时)
是否有任何 LLVM 支持异步执行,具有不同的指令指针?多栈?
我知道 LLVM 是一台注册机,有没有办法确保所有相关数据都保存在堆栈上?和/或一种保存和恢复当前寄存器状态的方法?
手动实施这将是一个真正的害虫,所以任何帮助表示赞赏!
我一直在为 LLVM 编写一种玩具语言。我想要实现的最雄心勃勃的功能是纤维。我已经阅读了很多关于此事的内容,并且我认为我对传统上它们是如何实现的有一个模糊的概念。据我所知,纤维通常被建模为指令指针和堆栈。(参见:Golang 运行时)
是否有任何 LLVM 支持异步执行,具有不同的指令指针?多栈?
我知道 LLVM 是一台注册机,有没有办法确保所有相关数据都保存在堆栈上?和/或一种保存和恢复当前寄存器状态的方法?
手动实施这将是一个真正的害虫,所以任何帮助表示赞赏!