问题标签 [llvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4023 浏览

llvm - LLVM 代码生成导致段错误?

我对语言创建和编译器构造感兴趣,并且一直在研究这里的示例:http: //gnuu.org/2009/09/18/writing-your-own-toy-compiler/。作者使用的是 LLVM 2.6,在对 LLVM 2.7 进行了一些更改后,我得到了所有代码生成代码来编译。在向编译器提供测试代码时,

程序正常工作,直到它尝试运行代码,此时它会出现段错误。我正在我的系统上构建 LLDB,但与此同时,有人在这个 LLVM asm 中看到明显的段错误吗?

输出只是:

我的拱门是 OS X x86_64。

谢谢。

0 投票
1 回答
1290 浏览

c++ - llvm 的 Hello pass 示例的编译错误

我在“Writing an LLVM Pass”网页中尝试了 Hello pass 示例。我按照说明编译(使用 gcc-4.2)Hello.cpp,但出现编译错误:

Hello.cpp:20:错误:字符串常量之前的预期标识符
Hello.cpp:20:错误:字符串常量之前的预期“,”或“...”
Hello.cpp:20:错误:预期的构造函数、析构函数或类型转换前 ';' 令牌

这是INITIALIZE_PASS(Hello, "Hello", "Hello World Pass", false, false);程序中的行。该程序是:

任何人都可以帮我解决这个问题吗?非常感谢!

最好的,
丹尼尔

0 投票
2 回答
933 浏览

java - JVM 中包含哪些功能

JVM的功能是什么?我所知道的是:

  • 即时编译器
  • GC
  • 内存分配器

加载 Java 应用程序时它会执行哪些步骤?

我想知道,因为如果我将 Java 应用程序的加载时间与这些步骤进行比较:

  • InitializeNativeTarget在 LLVM 上
  • 一些 GC 初始化
  • 一些 Qt/GTK/无论什么初始化
  • 应用程序部分的一些 JIT/ahead 编译
  • 应用程序初始化本身

在我看来,加载 JVM 所需的时间比执行我上面列出的步骤所需的时间要长得多。那么除此之外它还有什么作用呢?

0 投票
3 回答
1953 浏览

math - 如何在 LLVM 位码中实现 floor、ceil 和 round?

我正在为一种基于 LLVM 的小型编程语言编写数学函数,我目前对如何实现常见的舍入函数 floor、ceil 和 round(甚至)感到困惑。首先是因为我还没有找到这些函数的任何算法描述,其次是因为我不熟悉 LLVM 具有哪些功能。四舍五入。

能够正确舍入负数是必须的,而不是舍入到特定精度。四舍五入到整数值就可以了。简单地指出可以从 LLVM 位码中使用的任何现有实现也将起作用。

0 投票
4 回答
16965 浏览

clang - LLVM jit 和本机

我不明白 LLVM JIT 与正常的无 JIT 编译有何关系,而且文档也不好。

例如假设我使用clang前端:

  1. 案例 1:我使用 clang/llvm 将 C 文件编译为本机。我理解的这个流程就像 gcc 流程——我得到了我的 x86 可执行文件并运行。
  2. 案例 2:我编译成某种在 LLVM JIT 上运行的 LLVM IR。在这种情况下,可执行文件包含 LLVM 运行时以在 JIT 上执行 IR,或者它是如何工作的?

这两者有什么区别,它们是否正确?LLVM 流是否包括对 JIT 和非 JIT 的支持?我什么时候想使用 JIT - 对于像 C 这样的语言,它是否有意义?

0 投票
1 回答
467 浏览

compiler-construction - 使用 clang 的 JIT 注册外部函数?

我试图用 clangs JIT 注册一个外部函数但没有成功。

这是我试图调用的函数:

这是我用来注册它的代码:

以下是 JIT 将运行的 c 代码:

我的代码不正确还是别的什么?有任何想法吗?谢谢。

0 投票
2 回答
4984 浏览

c++ - 如何嵌入 LLVM?

LLVM 核心项目包括:

  • 编译器 - 将源代码转换为 LLVM IR
  • VM - 执行编译的 IR 代码

如何将 VM 嵌入到 C++ 应用程序中?

0 投票
2 回答
2004 浏览

c++ - LLVM 自动 C++ 链接

在一些 LLVM 教程中,我看到将 C 函数绑定到基于 LLVM 的自定义语言相当容易。LLVM 给程序员一个指向函数的指针,然后可以将其与 LLVM 生成的代码混合在一起。

使用 C++ 库执行此操作的最佳方法是什么。假设我有一个相当复杂的库,如 Qt 或 Boost,我想绑定到我的自定义语言。我是否需要创建一个存根库(如 Python 或 Lua 需要),或者 LLVM 是否提供某种外部函数接口 (FFI)?

0 投票
3 回答
5233 浏览

c# - 有没有办法用 C# 编写 LLVM 前端编译器?

有没有办法用 C# 编写 LLVM 前端编译器?

0 投票
3 回答
319 浏览

jit - 寻找基于 LLVM 的语言,该语言允许即时重新加载部分二进制文件

是否有任何基于 LLVM 的无 GIL 语言,主要针对 JIT 执行,允许动态重新加载部分代码?

就像重新编译 1 个类,并在不停止整个程序的情况下重新加载它。

有人试过吗?

有没有机会用 clang 做到这一点(当然,有很多开发人员谨慎、限制和手动状态处理)?