ZHCU876Z July 2001 – October 2023 SM320F28335-EP
链接后优化通过删除冗余的 DP 负载,降低管理数据页 (DP) 寄存器的难度。这是通过跟踪 DP 的当前值并确定 MOV DP,#address 指令中的地址是否位于 DP 当前指向的同一个 64 字页面上来实现的。如果可以使用当前 DP 值访问此地址,则该指令是冗余的,可以删除。例如,考虑以下代码段:
MOVZ DP,#name1
ADD @name1,#10
MOVZ DP,#name2
ADD @name2,#10
如果 name1 和 name2 链接到同一个页面,链接后优化器会认为不需要加载带有 name2 地址的 DP,并注释冗余负载。
MOVZ DP,#name1
ADD @name1,#10
; <<REDUNDANT>> MOVZ DP,#name2
ADD @name2,#10
这种优化也可以用于 C 文件上。尽管编译器对模块内定义的所有全局变量引用进行了 DP管理,但对于外部定义的全局变量的引用,该编译器还是保守地发出了 DP 负载。在这些情况下,使用链接后优化器可以帮助减少 DP 负载的数量。
此外,--map_file 链接器选项可用于生成按数据页排序的符号列表,以帮助进行数据布局和减少 DP 负载。有关更多信息,请参阅 TMS320C28x 汇编语言工具用户指南 中的“链接器说明”一章 。