主要内容

简化相乘操作数组索引的循环

如果你使用嵌入式编码器®从MATLAB生成C / c++代码®代码,你可以使一个优化,简化了在循环中数组索引在生成的代码中。如果可能,在循环中数组索引,这种优化替代乘法操作添加操作。用操作可以是昂贵的。称为强度降低,这种优化是有用,当C / c++编译器在目标平台上不优化的数组索引。

这是生成的代码没有优化:

(我= 0;我< 10;我+ +){z [5 * (1 + i) - 1) = x (5 * (1 + i));}

这是代码生成与优化:

(b_i = 0;b_i < 10;b_i + +) {z (+ 4) = x (+ 5);我+ = 5;}

默认情况下,强度降低优化是禁用的。启用:

  • 在命令行,设置配置对象参数EnableStrengthReduction真正的

  • MATLAB编码器™应用,项目构建设置,在所有设置选项卡,设置简化数组索引是的

即使优化替代乘法操作在生成的代码中,可能是C / c++编译器可以生成乘法指令。

相关的话题