gcc向量化资料.doc

1向量化驱动,下面列出了向量化需要做的工作。 analyze_loop_CFG(loop) 检查loop中控制流的特性(基本块的个数,嵌套,入口出口等等),以便确定loop的控制流是否属于可以向量化的形式。 analyze_loop_index_and_bound(loop) 分析loop结束条件以便确定loop边界和索引变量的性质(边界和步长)。这种功能函数需要得到规约变量分析器的支持。 analyze_loop_stmts(loop-stmts) 扫描loop中的语句,检查是否有不能向量化的语句,如函数调用等。 analyze_access_pattern(loop-mem-refs) 分析loop中的内存引用,并按照它们的存取形式进行分类 analyze_alignment(loop-mem-refs) loop中内存引用的对齐分析,对于每一个内存引用来说,如果在编译时可以确定未对齐的数量,就将其记录下来。 analyze_loop_carried_dependences(loop) 建立循环依赖图(标量和数组引用),检查图中的强连通分量(引起循环依赖的语句集),用拓扑方法将图简化(每个强连通图都表示为一个节点);只有那些没有自依赖的才能被向量化。如果还有其他的强连通分量,就需要做loop变换了。 estimate_vectorization_prof

文档评论(0)

1亿VIP精品文档

相关文档