循环展开
摘要:循环展开,是一种牺牲程序的尺寸来加快程序的执行速度的优化方法。可以由程序员完成,也可由编译器自动优化完成。循环展开通过将循环体代码复制多次实现。循环展开能够增大指令调度的空间,减少循环分支指令的开销。循环展开可以更好地实现数据预取技术。展开循环的好处由于展开能够消除分支以及一些管理归纳变量的代码,因此可以摊销一些分支开销。展开可以积极调度(或管道化)循环以掩盖一些延迟。如果有足够的空闲寄存器使变量保持活动状态,因为通过展开相关性链展露了关键路径,这将非常有用。如果迭代次数是可预测的,并且循环中没有条件分支,则英特尔(R) 奔腾(R) 4 处理器可以正确预测迭代次数为 16 次或更少的内部循环的
阅读全文
posted @ 2013-01-17 21:59