ZHCUAU3J January 2018 – March 2024
软件流水线调度循环中的指令,以便循环的多次迭代能够并行执行。在优化级别 --opt_level=2(即 -O2)和 --opt_level=3(即 -O3)上,编译器通常试图对循环进行软件流水线处理。--opt_for_speed 选项还会影响编译器试图对循环进行软件流水线处理的决定。通常,在使用 --opt_level=2 或 --opt_level=3 选项时,代码大小和性能会更好。(请参阅节 4.1。)
图 4-1 说明了进行了软件流水线处理的循环。循环的阶段由 A、B、C、D 和 E 表示。在此图中,一次最多可以执行 5 次循环迭代。阴影区域表示循环内核。在循环内核中,所有五个阶段都是并行执行的。内核上方的区域称为流水线循环逻辑程序,内核下方的区域称为流水线循环收尾程序。