【发布时间】:2017-02-03 18:23:37
【问题描述】:
当从 c++ 代码发出 LLVM IR 时,如果未调用函数,为什么模板函数不会显示在 LLVM-IR 中,
与将出现在 llvm ir 中的其他类型的函数(int、float ...)不同
示例:以下函数 func1 不显示在 llvm ir
template <class tmp>
tmp func1 () {
// ...
}
但是这个函数func2总是显示在llvm ir中
int func2 () {
// ...
}
【问题讨论】:
-
这不是一个模板函数。这是一个函数模板。它不是功能,而是未来功能的蓝图。这是完全无关紧要的。
func<int>将是一个模板函数,即一个所有模板参数已知的函数模板。这实例化模板,使其“具体化”。
标签: c++ llvm llvm-clang llvm-ir