链接时优化通常通过将一些 IR 放入目标文件而不是实际的机器代码来实现。因此,在处理静态库时,它只是此类 IR 文件的集合,并且每次更改使用它的代码时都必须执行 LTO。如果您构建一个共享库而不是 LTO 只完成一次,并且 dll 内的代码已完全优化。
在处理静态库时,是否也可以跨翻译单元进行一些优化?我知道这与您不能做出任何整个程序的假设不同,但是是否应该可以做一些基本的事情,例如内联未在标头中定义的 setter/getter?
链接时优化通常通过将一些 IR 放入目标文件而不是实际的机器代码来实现。因此,在处理静态库时,它只是此类 IR 文件的集合,并且每次更改使用它的代码时都必须执行 LTO。如果您构建一个共享库而不是 LTO 只完成一次,并且 dll 内的代码已完全优化。
在处理静态库时,是否也可以跨翻译单元进行一些优化?我知道这与您不能做出任何整个程序的假设不同,但是是否应该可以做一些基本的事情,例如内联未在标头中定义的 setter/getter?