如何将编译扩展到函数或循环

Mar*_*tin 1 c++ compiler-construction performance build

我有一个带循环的函数,我将在c ++代码中获得循环的扩展开发.我也有一个递归函数,我希望得到相同的.

我需要的一个例子:

for (i = 0; i <4; i++)
{
      printf ("%d", "example");
}
Run Code Online (Sandbox Code Playgroud)

应该导致我需要

printf ("%d", "example");
printf ("%d", "example");
printf ("%d", "example");
printf ("%d", "example");
Run Code Online (Sandbox Code Playgroud)

这是一个简单的例子.但是我需要为更复杂的功能做这件事.我使用它的价值visual c++.我不知道是否有这样的构建选项.

Naw*_*waz 5

如果您正在使用GCC编译代码,那么您可以使用-funroll-loop选项来取消循环此循环.

文件说,

  • -funroll-loops
    展开循环,其迭代次数可以在编译时或进入循环时确定.-funroll-loops意味着-frerun-cse-after-loop.此选项使代码变大,可能会也可能不会使代码运行得更快.

还有另一个(类似的)选择:

  • -funroll-all-loops
    展开所有循环,即使在输入循环时它们的迭代次数不确定.这通常会使程序运行得更慢.-funroll-all-loops意味着与-funroll-loops相同的选项,

  • 如果只是为了找出他正在寻找循环展开的话,你肯定值得投票. (2认同)