向量化报告和全新 vec-report6 概述

Overview of vectorization report

向量化报告概述

面向英特尔® MIC 架构的编译器方法

向量化要素、向量化和优化报告、向量化报告和全新 vec-report6 概述

现有–vec-report 等级(0 5)控制以下向量化报告信息的生成:

1.    成功:循环已被向量化

2.    失败:循环未被向量化:<< 简单说明原因 >>”

3.    原因,信息依赖: xx yy 的依赖

最短的是 –vec-report0 默认),不输出任何消息。最冗长的是 –vec-report3输出以上 3 类消息。

13.0 编译器版本增加了一种新的报告等级或类别。新增的 –vec-report6 等级输出的 3 类消息与 vec-report3 相似只是添加了更详细的向量化信息。请查看 -vec-report 编译器选项

例如,在 –vec-report3 下,输出消息可能是循环未被向量化:不支持的数据类型。而借助 –vec-report6,后边有向量化支持:运行 OOO 不支持 TTT 类型。然后,客户可以尝试着更改数据类型和/或运算符。

几个消息示例。这些是信息性质的,以帮助编程人员了解向量代码行为和/或失败的向量化尝试。

foo0.c(8): (col. 12) remark:loop was not vectorized: statement cannot be vectorized.

foo0.c(8): (col. 12) remark: vectorization support: call to function bar cannot be vectorized.

foo1.c(8): (col. 3) remark: LOOP WAS VECTORIZED
foo1.c(8): (col. 3) remark: vectorization support: unroll factor set to 4. vectorization support: unaligned access used inside loop body

vectorization support: call to function %s cannot be vectorized
vectorization support: call to function %s cannot be vectorized with given fp model
vectorization support: assignment cannot be vectorized for variable <<variable_name>>
vectorization support: unsupported reduction <<operator>>
vectorization support: vectorization of single precision division of product and converted double precision is not safe
vectorization support: scalar type occupies entire vector
vectorization support: reference %s has aligned access
vectorization support: reference %s has unaligned access
vectorization support: vectorization of this loop under -Os has impact on code size
vectorization support: %s
vectorization support: unroll factor set to %s
vectorization support: type long long is not supported as indices on given target architecture
vectorization support: type char is not supported for operation %s
vectorization support: type short is not supported for operation %s
vectorization support: type int is not supported for operation %s
vectorization support: type long long is not supported for operation %s
vectorization support: type float is not supported for operation %s
vectorization support: type double is not supported for operation %s
vectorization support: type complex float is not supported for operation %s
vectorization support: type complex double is not supported for operation %s
vectorization support: unaligned %s will be scalarized
vectorization support: conversion from int to float will be emulated
vectorization support: conversion from float to int will be emulated
vectorization support: streaming store was generated for %s

下一步

要在英特尔® 至强融核协处理器上成功调试您的应用,请务必通读此指南,并点击文中的超链接查看相关内容。本指南提供了实现最佳应用性能所要执行的步骤。

返回向量化和优化报告

 

Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.