产品版本: Intel(R) Visual Fortran 编译器 XE 15.0.0.070
原因:
使用 Visual Fortran 编译器的优化选项 ( -O2 -Qopt-report:2 ) 时出现矢量化报告,表示编译时间不足妨碍了优化。
示例:
下面的示例将在优化报告中生成以下注释:
subroutine foo(a, n) implicit none integer, intent(in) :: n double precision, intent(inout) :: a(n) integer :: bar integer :: i i=0 100 CONTINUE a(i)=0 i=i+1 if (i .lt. bar()) goto 100 end subroutine foo
报告来源: 循环嵌套,矢量和自动并行优化 [循环、矢量、并行]
循环开始
注释编号15532: 循环无法进行矢量化处理:编译时间限制阻拦循环进行优化 考虑使用 -O3。
循环结束
解决方法:
使用 -O3 优化选项并参阅诊断信息 15523:
GOTO 语句阻拦矢量化处理,因为无法计算循环迭代次数。