ZHCUAU3J January 2018 – March 2024
为了更好地促进嵌套循环合并,即包含指令的外循环级别合并到内循环级别,C7000 架构提供了一个被称为嵌套循环控制器 (NLC) 的功能。此功能实现了不只一层循环嵌套的硬件循环控制。这允许编译器合并循环级别,同时预测内循环中的外循环指令执行情况。这样减少了循环控制开销,并让软件流水线循环更好地利用函数单元资源。循环合并会使编译器在合法且有利可图的情况尝试自动执行该操作。有利性由启发算法决定。
有两个 pragma 允许您显式启用或禁用专用嵌套循环的合并。在C/C++语言中,这些 pragma 只能应用于循环,并且必须出现在循环结构的前面:
#pragma COALESCE_LOOP
#pragma NO_COALESCE LOOP