加密问答
Android 中的 LTO 是什么?
Android 中的 LTO 是什么?

Android 中的 LTO 指的是链接时间优化,这是一种跨不同编译单元优化代码的编译技术。
它用于通过消除冗余代码并在链接阶段执行其他优化来提高性能并减少最终二进制文件的大小。

6 回答数

LLVM 的控制流完整性 (CFI) 功能通过确保间接控制传输仅发生在授权点来增强程序安全性。
该机制需要特定的编译过程才能充分发挥其优势。
是否有帮助?
221
80

实现 LLVM 的 CFI 的一个重要方面是链接时间优化 (LTO) 的利用。
LTO 是一种编译技术,可延迟最终链接阶段,直到生成所有目标文件,从而允许对整个程序进行更全面的优化。
是否有帮助?
45
32

在 LTO 期间,LLVM 维护对象文件的位码表示,直到链接阶段。
这种方法是有利的,因为它为编译器提供了程序结构和行为的更全面的视图。
是否有帮助?
328
43

通过访问位码表示,编译器可以就应用哪些优化做出更明智的决定。
例如,它可以识别在传统的单独编译和链接过程中可能会丢失的模式。
是否有帮助?
84
61

LTO 与 LLVM 的 CFI 结合使用使编译器能够优化程序,同时强制执行更严格的控制流约束。
这种组合增强了程序的安全性和性能。
是否有帮助?
390
68
显示其他5条相关问题