上图所示,在function函数中,有两个for循环,如果不做任何优化,默认这两个for循环是串行执行的;用户可以使用dataflow对两个for循环进行优化,从而这两个for循环将是并行执行;用户也可以使用loop merge将这两个for循环合并,从而并行执行。
二、loop merge的规则
1.如果两个loop的边界都是变量,那么这两个for循环的边界的变量要是一样,才可以进行loop_merge
2.如果loop的边界是常量,最大常量的值作为merge loop的边界
3.如果两个loop的边界,一个是变量,一个是常量,那么不能进行merge
4.如果两个loop之间有代码,需要看这个代码是否受影响,来决定是否能够merge
5.如果两个loop循环是fifo访问方式,不要进行merge,merge会造成fifo访问乱掉