我已将一些C函数编译为LLVM字节码。 现在我想让这些功能可以通过Lua脚本引擎访问,然后将Lua脚本编译为本地机器代码。使用LLVM JIT编译lua包装的C函数?
我找到了使用llvm编译lua脚本的llvm-lua项目。 我现在想知道是否可以执行从lua脚本调用的C函数的jit编译和优化。
例如,我有这两个C函数:
void func1() {
for(int i = 1; i < 5; ++i)
printf("hello from func1");
}
void func2() {
for(int i = 1; i < 5; ++i)
printf("hello from func2");
}
和我揭露他们的一个Lua脚本引擎并运行Lua中那样:
func1()
func2()
然后我想的llvm-lua编译器将其优化并编译成相应程序
for(int i = 1; i < 5; ++i) {
printf("hello from func1");
printf("hello from func2");
}
和不是分成
for(int i = 1; i < 5; ++i)
printf("hello from func1");
for(int i = 1; i < 5; ++i)
printf("hello from func2");
有没有可能实现这一点?
干杯,
曼努埃尔
是的,这听起来像是可能的,至少在抽象中......你有什么特别的麻烦? – servn 2011-05-29 23:19:39
没有编译器会执行该优化,因为它执行可观察的差异(输出将按不同顺序排列)。 – celion 2011-05-30 01:07:10
你看过luajit吗?最新的版本是非常有前途的速度 - 也许你可以完全摆脱C。 – 2011-06-23 02:39:23