已知循环行程计数的优化可能性

3
如果编译器知道循环的迭代次数,它能为优化做些什么?其中之一是循环展开。其他还有哪些呢?
1个回答

1
  • 避免在循环进入时跳过检查(许多现代语言允许循环具有零次迭代,但必须在进入时进行检查)
  • 更好的SIMD化(将循环迭代分块处理,以便使用小向量进行处理)
  • 删除下标范围检查(或诊断错误)(对于那些坚持要求的语言)

如果一个人知道索引变量的范围,那么他也就知道了索引表达式的范围。例如,如果0<i<4并且x [3 * i + 6]是一个下标,则6 <= 3 * i + 6 <= 30。因此,如果x的维数大于30,则不会发生越界下标,并且您无需检查(C语言只需要使用,如果索引值太大,你将获得垃圾值)。 - Ira Baxter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接