【发布时间】:2014-09-07 23:43:34
【问题描述】:
谁能告诉我如何将 Clang 编译器编译成 LLVM 字节码(即自托管 Clang)?我想这样做的原因是我可以获取生成的 LLVM 字节码,然后使用 Emscripten 生成 C 到 Javascript 编译器。
【问题讨论】:
-
使用 -flto 然后将生成的 IR 模块收集到一个大的单个模块中。
标签: c clang llvm llvm-clang emscripten
谁能告诉我如何将 Clang 编译器编译成 LLVM 字节码(即自托管 Clang)?我想这样做的原因是我可以获取生成的 LLVM 字节码,然后使用 Emscripten 生成 C 到 Javascript 编译器。
【问题讨论】:
标签: c clang llvm llvm-clang emscripten
您可以使用-emit-llvm 命令行标志和-c 标志将clang 输出到LLVM 字节码。 (如果您使用 -S 标志而不是 -c,您将获得 LLVM 字节码的文本表示。)您无需将 clang 编译为 LLVM 字节码即可。
如果您想尝试在浏览器中运行 clang 本身,则需要将所有 clang 编译为 LLVM 字节码,然后使用 llvm-link 将目标文件链接在一起。然后你需要弄清楚如何让编译的编译器访问它需要的系统头文件。我不知道是否有所有这些的构建选项,但我从未在./configure 选项中看到任何内容,所以我怀疑没有。但它可能存在。
【讨论】: