gpt4 book ai didi

c++ - 使用 LLVM API 生成静态代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:45 32 4
gpt4 key购买 nike

从包含一些 IR 的 LLVM 模块 *Mod 开始:如何使用特定的后端从中生成目标特定的汇编程序?不幸的是,Kaleidoscope 教程没有对此进行详细说明。它仅使用执行引擎对程序进行 JIT 编译(在构建、目标体系结构上),但实际上并不选择特定的后端来生成特定于目标的汇编程序。任何 LLVM 教程也没有,因为我认为它们没有详细说明如何构建静态编译器。因此,这个问题可以提供这条缺失的信息。

由于我们要构建一个静态编译器,所以我们不想使用llc 等命令行工具来完成这项工作。我们想使用 LLVM API。

为了使这个更具体,让我们从这段代码开始:

LLVMContext &Context = getGlobalContext();
SMDiagnostic Err;
Module *Mod = ParseIRFile(argv[1], Err, Context);

文件名(由第一个参数给出)已成功解析为 IR。现在让我们跳过优化过程并创建一些具有特定后端的汇编程序,例如PTX 后端(自版本 3.2 起可用)。

最佳答案

只需查看tools/llc/llc.cpp 的源代码。它做到了所有这些,而且它很短而且不难理解。如果您对某些您不理解的事情有具体问题,请随时提出。

关于c++ - 使用 LLVM API 生成静态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16463486/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com