1. 编译llvm-lua
http://code.google.com/p/llvm-lua/
注意,
1)编译时可能需要修改源代码以适应VC2008。
2)需要编译LLVM(http://llvm.org/releases/download.html#2.7)
3)对于VC2008,需要把所有lua脚本引擎核心使用过的API和常数都在exe中导出,好像dll那样(尤其是lua的OP码),否则会有运行期错误。(怀疑是因为llvm-lua在内存中动态生成脚本对应的汇编代码,但没有动态生成lua脚本引擎的代码,而是与llvm-lua.exe共享这些API)
我的编译版本见下(对应llvm 2.7,但不含LLVM 2.7的编译器),仅测试用:
svn://www.svnhost.cn/weimingtom_mmcstudy/llvm-lua
2. 使用llvm-lua运行
C:\Documents and Settings\Administrator\桌面\llvm_lua-1.2.0_vc9_bin\bin>llvm-lua test\hello.lua
Hello world, from Lua 5.1!
Hello world, from Lua 5.1!
3. 用LLVM自带的lli工具JIT运行LLVM的bc码文件(不使用llvm-lua)
D:\java\LLVM\bin>lli luac.out
Hello world, from Lua 5.1
Hello world, from Lua 5.1
这里运行结果和上面不一样可能是因为llvm的版本不同。
4. 编译lua脚本为LLVM的bc码文件
C:\Documents and Settings\Administrator\桌面\llvm_lua-1.2.0_vc9_bin\bin>llvm-luac -bc test\hello.lua
5. 反编译LLVM的bc码文件为汇编源代码(intel格式)
D:\java\LLVM\bin>llc -O0 -asm-verbose -x86-asm-syntax=intel luac.out -o lua.out.s
6. 其它问题:
用lli.exe明显比llvm-lua.exe要慢。
有待继续研究如何把lua脚本文件直接编译成exe,以及llvm-lua的内部运行机制。
相关推荐
文章《将 Rust 程序编译为 WebAssembly》可能用到的资源:LLVM-16.0.0-win64.exe。
方舟编译器工具openarkcompiler # 安装Clang编译器并完成配置(用于编译方舟编译器代码) 下载**clang+llvm-8.0.0-...GN_AR = "${MAPLE_ROOT}/tools/clang_llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/llvm-ar" ```
LLVM-13.0.0-win64.exe
LLVM-11.0.0-win64.exe.zip
Clang是一个由Apple主导编写,基于LLVM的C/C++/Objective-C编译器.快速编译和较少内存占用 ;有诊断功能;...https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.0/LLVM-12.0.0-win64.exe
clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,官网下载实在是太慢了!!!
winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3.zip
LLVM-3.5.r203967-win32.exe llvm的clang windows版
赠送jar包:llvm-13.0.1-1.5.7.jar; 赠送原API文档:llvm-13.0.1-1.5.7-javadoc.jar; 赠送源代码:llvm-13.0.1-1.5.7-sources.jar; 赠送Maven依赖信息文件:llvm-13.0.1-1.5.7.pom; 包含翻译后的API文档:llvm-...
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容...
具体内容为适用于jetson nano等arm64架构的嵌入式开发平台的的clang+llvm-7.0.1-aarch64-linux-gnu.tar.xz
llvm-7.0.1.src.tar.xz
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容...
代码混淆工具LLVM8.0版本,LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),...
LLVM-10.0.0-win64.exe,LLVM-10.0.0-win64.exe,LLVM-10.0.0-win64.exe
clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-14.04.tarclang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-14.04.tarclang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-14.04.tar
clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz llvm 10.0 在 18.04系统下的安装包
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
OpenArkCompiler所需clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz,上传大小限制,压缩包1。