restrict 关键字 - 2022.1 简体中文

AI 引擎内核编码 最佳实践指南 (UG1079)

Document ID
UG1079
Release Date
2022-05-25
Version
2022.1 简体中文

C 语言标准可提供特定指针限定符 __restrict,此限定符旨在通过显式声明数据之间的独立性,从而开展更激进的编译器最优化。默认情况下,编译器并不会区分对相同阵列进行的不同访问。因此,如果在流水线中访问某个阵列,那么它可能以保守假设来阻碍流水线在循环之间达成更高的时间间隔。这导致在某些情况下有必要使用 __restrict 关键字来帮助指引工具提升性能。使用 __restrict 关键字时必须谨慎对待,因为如果 __restrict 关键字分配到相同作用域内的指针,那么使用该指针时可能会观察到未定义的行为。如需了解有关 __restrict 关键字的概念的详细信息,请参阅 Versal ACAP AI 引擎编程环境用户指南(UG1076) 中的在 AI 引擎内核中使用 restrict 关键字