可以直接使用LLVM汇编吗?
我读过一些关于llvm的网页和文章,我对这个项目很感兴趣。 (也许可以学习一些有关编译器编写的知识,而无需为 x86 的复杂点而苦苦挣扎)。
有一些页面描述了如何编写 llvm 程序集以及如何组装它,但我没有找到任何关于实际执行这些程序需要什么样的环境的信息。我知道我可以在我的文件上运行 llvm-gcc 来获取可在 C 上下文中执行的目标文件。但如果我不想使用 C 运行时环境(libc.so
和朋友),那么运行 llvm 代码需要什么?有相关文件吗?
I have read some webpages and articles about llvm and I am quite interested in this project. (Maybe to learn something about compiler writing without the need to struggle with the complicated points of x86).
There are pages that describe how to write llvm assembly and how to assemble it, but I did not find anything on what kind of environment is needed to actually execute these. I know that I could run llvm-gcc on my files to get an object file that is executable in a C-context. But in the case that I don't want to use the C runtime environmen (libc.so
and friends), what is needed to run llvm code? Is there any documentation on that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
似乎有一个 LLVM 汇编器。
There appears to be an LLVM assembler.
快速设置:(适用于 Windows 上的 llvm 3.4.0 .ll 文件)
来自 的高级文本编辑器https://notepad-plus-plus.org/
来自 https://github.com/CRogers/LLVM-Windows-Binaries
hello.ll as“UTF-8 without BOM”(此代码采用 llvm 3.4.0 格式):
在命令中提示:
快速设置:(对于 Windows 上的 llvm 3.8.0 .ll 文件)
来自 https://notepad-plus-plus.org/
clang 二进制文件来自:http://llvm.org/releases/download.html#3.8.0
UTF-8 without BOM”(此代码采用 llvm 3.8.0 格式):
hello.ll 为“ 命令提示符:
或作为单个命令:
有关 char16_t、u16String 等的错误意味着 clang 需要:-fms-compatibility-version=19
Quick setup: (For llvm 3.4.0 .ll files on windows)
advanced text editor from https://notepad-plus-plus.org/
llvm binaries from https://github.com/CRogers/LLVM-Windows-Binaries
hello.ll as "UTF-8 without BOM" (This code is in llvm 3.4.0 format):
In command prompt:
Quick setup: (For llvm 3.8.0 .ll files on windows)
advanced text editor from https://notepad-plus-plus.org/
clang binaries from: http://llvm.org/releases/download.html#3.8.0
hello.ll as "UTF-8 without BOM" (This code is in llvm 3.8.0 format):
In command prompt:
Or as a single command:
Errors about char16_t, u16String, etc means clang needs: -fms-compatibility-version=19
静态编译器,接受 LLVM 程序集:
http://llvm.org/docs/CommandGuide/llc。 html
LLVM 汇编语言参考:
http://llvm.org/docs/LangRef.html< /a>
The static compiler, which accepts LLVM Assembly:
http://llvm.org/docs/CommandGuide/llc.html
The LLVM Assembly Language Reference:
http://llvm.org/docs/LangRef.html
Archlinux 上的 LLVM 11.1 不接受上面答案中的代码。这是来自当前的 LLVM IR 文档:
如果您启动
lli
单独而言,它不显示提示,但接受输入。不过,此输入仅在
Ctrl-D
(EOF) 之后进行评估。我来这里是因为我想找到一个 REPL。运气不好。
LLVM 11.1, on Archlinux, did not accept the code from the answer above. This is from the current LLVM IR docs:
If you start
lli
alone, it does not show a prompt, but accepts input.This input is only evaluated after
Ctrl-D
(EOF), though.I came here, because I wanted to find a REPL. No luck.