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。
llvm-project_18.1.6-1.src.tar.gz llvm-project_18.1.6-1.src.tar.gz llvm-project_18.1.6-1.src.tar.gz llvm-project_18.1.6-1.src.tar.gz llvm-project_18.1.6-1.src.tar.gz llvm-project_18.1.6-1.src.tar.gz ...
LLVM-13.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" ```
然而,TVM在编译时还需要`llvm-config.exe`这个工具,它是LLVM的一个命令行实用程序,用于获取关于LLVM配置的信息,如库文件的位置、链接选项等。在某些情况下,预编译的LLVM安装可能不包含这个文件,或者TVM可能...
赠送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(Low-Level Virtual Machine)是一个开源的编译器基础设施项目,由Chris Lattner在2003年创建...通过LLVM-10.0.0-win64.zip提供的Windows版本,用户可以在Windows环境下充分利用LLVM的功能,提高代码质量和性能。
总的来说,LLVM-10.0.0-win64.exe是Windows平台上一个强大的工具集,不仅用于编译和优化代码,还能用于代码分析、调试和教学研究。对于开发者而言,它提供了灵活的接口来构建自定义的编译工具链,满足各种特定需求,...
在压缩包子文件的文件名称列表中,我们看到"LLVM-11.0.0-win64.exe",这是LLVM的Windows安装程序,用户可以通过运行这个文件来安装LLVM。这个文件可能会引导用户完成一系列步骤,包括选择安装路径、设置环境变量,...
LLVM-12.0.0-6923b0a7-win64.exe
在这个“LLVM-18.1.4-win64安装包”中,我们获得了LLVM的Windows 64位版本。LLVM的Windows版通常包含了编译器、调试器和其他相关工具,使得开发者能够在Windows环境下进行高性能的编译和调试工作。安装包可能包含LLD...
LLVM-8.0.1-win64.zip这个压缩包包含了LLVM 8.0.1版本的Windows 64位构建,对于在Windows平台上使用LLVM进行开发的用户来说非常实用。 LLVM的主要组成部分包括: 1. **Clang**:这是一个C、C++、Objective-C和...
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
在下载并解压缩"llvm-8.0.1.src.tar.xz_FreeDownload.zip"后,你会得到"llvm-8.0.1.src.tar.xz"文件。你需要再次使用解压缩工具(如tar和xz或类似支持这两种格式的工具)来解压这个源代码文件。命令行中,你可以使用...
clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04,官网下载实在是太慢了!!!
这些优化可以在编译时静态应用,也可以在运行时动态进行。LLVM还支持自定义插件,允许开发者创建自己的优化规则。 后端则负责将优化过的LLVM IR转换为目标机器代码,可以是汇编语言或者直接的机器代码。LLVM支持...
clang+llvm-12.0.0-x86_64-linux-gnu-ubuntu-16.04
这个压缩包“LLVM-9.0.0-win64.rar”包含了LLVM针对Windows 64位操作系统的版本,即LLVM-9.0.0-win64.exe,它是一个可执行文件,用于在Windows环境下安装LLVM。通过提供的链接(http://clang.llvm.org/),用户可以...
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容...
winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14.0.3-mingw-w64msvcrt-10.0.0-r3.zip