
1.static修饰的变量并不总是生成寄存器是否生成寄存器综合工具说了算用户只能推荐工具尽量理解用户的意图但是左右不了工具的决定2.static 循环的结构能够保证static修饰的变量是生成寄存器的这种架构的静态变量是用于在循环的迭代之间保留数据的这个通常都会实现寄存器的static u32 temp 0;for(){#pragma pipeline ii1temp a b;}这种架构生成的temp都是寄存器。3.static修饰的变量的load和store会造成II变大对设计的吞吐量有影响4.static修饰的变量对II的影响案例function_foo(){static bool change 0;if (condition_xyz){change x; // store}y change; // load}上述函数没有办法优化store需要一个周期load需要一个周期所以这个函数的II2;5.中间temp变量解决II2的问题function_readstream(){static bool change 0bool change_temp 0;if (condition_xyz){change x; // storechange_temp x;}else{change_temp change; // load}y change_temp;}这个代码的设计load和store不会同时存在从而解决了II2的问题。