v++
命令可在内核编译和链接期间执行各种赛灵思工具。这些工具会生成大量消息以便为您提供构建状态。这些消息可能与您关注的对象和设计阶段有关,也可能无关。消息规则文件 (.mrf) 可用于更好地管理这些消息。它可提供各种命令以便将重要消息推送到终端或者禁止推送不重要的消息。这有助于您更好地了解内核构建结果,并探索各种内核最优化方法。
消息规则文件是由注释和受支持的命令组成的文本文件。每行仅允许一条命令。
注解
以“#
”开头作为第一个非空格字符的任何行均为注释。
受支持的命令
默认情况下,v++
会以递归方式扫描整个工作目录,并将所有错误消息推送到 v++
输出。以下 promote
和 suppress
命令可用于进一步控制 v++
输出。
-
promote
:此命令表示应将匹配的消息推送到v++
输出。 -
suppress
:此命令表示应禁止将匹配的消息推送到v++
输出或者从输出中过滤掉此类消息。请注意,无法禁止推送错误消息。
每行仅限输入一条命令。
命令选项
消息规则文件可包含多条 promote
和 suppress
命令。每条命令都包含且仅含下列其中一个选项。这些选项区分大小写。
-
-id [<message_id>]
:推送或者禁止推送匹配指定消息 ID 的所有消息。消息 ID 格式为 nnn-mmm。以下是来自 HLS 的警告消息示例。在此例中,消息 ID 为 204-68。WARNING: [V++ 204-68] Unable to enforce a carried dependence constraint (II = 1, distance = 1, offset = 1) between bus request on port 'gmem' (/matrix_multiply_cl_kernel/mmult1.cl:57) and bus request on port 'gmem'-severity [severity_level]
例如,要禁止含消息 ID 204-68 的消息,请指定:
suppress -id 204-68
。 -
-severity [<severity_level>]
:以下为严重性级别的有效值。匹配指定严重性级别的所有消息都将被推送或禁止。-
info
-
warning
-
critical_warning
例如,要推送严重性 (severity) 为“critical-warning”的消息,请指定:
promote -severity critical_warning
。
-
消息规则的优先顺序
suppress
规则优先于 promote
规则。如果将相同消息 ID 或严重性级别同时传递到消息规则文件中的 promote
和 suppress
命令,则匹配的消息将被禁止推送,不予显示。
消息规则文件示例
以下是有效的消息规则文件示例:
# promote all warning, critical warning
promote -severity warning
promote -severity critical_warning
# suppress the critical warning message with id 19-2342
suppress -id 19-2342