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

Any practical example of using LLVM Alias and IFunc capabilities?

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

我看了但找不到声明和使用任何一个主题功能的真实和实际的例子。我必须继续的最好的是 Language Reference.

题目如题。

我从 LLVM 中找不到太多内容,但我从 GCC docs.

中找到了更详细的解释

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

根据 this 示例判断,当您想要 select 为某些处理器优化的某些函数的不同版本时,ifunc 可能很有用。 您编写的解析器函数可以使用一些 OS 特定代码来确定某些系统特征(如处理器类型)和 return 指向正确函数的指针。

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