ZHCUAQ1F july 2015 – april 2023
软件流水线调度循环中的指令,以便循环的多次迭代能够并行执行。在优化级别 --opt_level=2(即 -O2)和 --opt_level=3(即 -O3)上,编译器通常试图对循环进行软件流水线处理。--opt_for_space 选项还会影响编译器试图对循环进行软件流水线处理的决定。通常,在使用 --opt_level=2 或 --opt_level=3 选项时,代码大小和性能会更好。(请参阅节 4.1。)
图 4-1 说明了进行了软件流水线处理的循环。循环的阶段由 A、B、C、D 和 E 表示。在此图中,一次最多可以执行 5 次循环迭代。阴影区域表示循环内核。在循环内核中,所有五个阶段都是并行执行的。内核上方的区域称为流水线循环序言,内核下方的区域称为流水线循环 结语。
如果您在线性汇编输入文件中输入指令注释,编译器会将注释连同附加信息一起移至输出文件。它会将一个二元组 <x, y> 附加到注释,从而规定指令在软件流水线上执行的循环的迭代和周期。基于零的数字 x 表示在循环内核第一次执行期间指令所进行的迭代。基于零的数字 y 表示在循环的单次迭代中指令调度周期。
有关软件流水线的更多信息,请参阅《TMS320C6000 程序员指南》。