c++ 如果一个循环嵌套的边界来自于它所在的函数参数,那么它可以被称为完美循环嵌套吗?

lymnna71  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(213)

示例:

  1. void top(int *a, int *b)
  2. {
  3. L1 : for (int i = 0; i < *a; i++)
  4. {
  5. for (int j = 0; j < 5; j++)
  6. {
  7. *b += *a;
  8. }
  9. }
  10. }

我可以把上面的嵌套循环L1称为完美循环嵌套吗?完美的循环嵌套应该有恒定的边界。我不清楚这种情况是否会进入恒定循环绑定场景。

cygmwpex

cygmwpex1#

由于外部循环体中唯一的语句是内部的for循环,所以这个嵌套的for循环是一个 * 完美嵌套循环 *。
请注意,gccclang都不会优化内部循环的simple unrolling以外的发布代码。
我想知道什么编译器可以将代码减少到:

  1. void top(int *a, int *b) {
  2. if (*a > 0)
  3. *b += *a * *a * 5;
  4. }

相关问题