内联关键字 - 2023.2 简体中文

AI 引擎工具和流程用户指南 (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 简体中文

AI 引擎编译器提供了内联函数,以减少函数调用开销。内联函数指的是在调用该函数的行中展开的函数。对于较大的函数,函数调用的开销与函数运行所需的时间相比微不足道。但是,对于较小的函数来说,函数调用所需的时间大于执行函数代码所需的时间。在小函数上产生开销是因为小函数的执行时间比切换时间短。

使用内联函数的优点是不存在函数调用开销。另一个潜在优势是,编译器能够执行特定上下文的最优化,而当函数独立存在时,这些最优化是不可能实现的。其缺点是寄存器消耗更大、程序大小增大,而且由于没有明确的开始和停止程序计数器可供检查,因此无法对函数进行剖析。

以下关键字用于向编译器表明内联函数的使用情况:
  • inline:此关键字是 AI 引擎编译器可为标记为内联的函数自由使用内联替代或函数调用的指标。
  • inline __attribute__((always_inline))__attribute__((always_inline)):这将强制编译器对函数执行内联。
  • inline __attribute__((noinline))__attribute__((noinline)):这将强制编译器始终生成函数调用。