使用LLVM Alias和IFunc功能的任何实际示例?

时间:2016-09-14 15:42:26

标签: compiler-construction llvm-ir

我正在创建一个前端(现在玩具语言,也许永远都是),直接发出LLVM IR(不是通过C ++库)。

我看了但却找不到声明和使用任何主题功能的真实实用示例。我必须做的最好的是Language Reference.

问题如标题所述。

1 个答案:

答案 0 :(得分:1)

我从LLVM中找不到多少,但我从GCC docs找到了更详细的解释。

别名,尤其是弱别名,可用于在系统标题未定义某些函数时定义某些函数的默认实现。 This问题显示了它在Linux glibc源代码中的使用示例。

根据this示例判断,当您想要为某些处理器选择某个功能的不同版本时,ifunc可能很有用。 您编写的解析器函数可以使用某些特定于操作系统的代码来确定某些系统特性(如处理器类型)并返回指向正确函数的指针。

这大部分都是低级别的东西,所以我99%肯定你不需要在语言前端使用它们。