-bb-vectorize: Basic Block Vectorization

在了解这个 pass 之前需要学习的背景知识是 Loop Transformation

Description

-bb-vectorize pass 主要是把 basic block 内部的 instruction 去 form 成 vector instruction (i.e. SIMD instructions),提升 memory bandwidth utilization 的同时进而提升程序运行的 runtime performance。 -bb-vectorize-loop-vectorize pass 的升级版本(这个pass在7.0左右的版本出现过,后来进化成这个了)。 -bb-vectorize 相比于 -loop-vectorize ,涵盖除了 loop 之外的更多 vectorization 的形式,比如不改变 loop 数量的同时直接把 basic block 内部符合条件的 instruction 优化成 vector instruction。

Code Example

例子可以移步 Loop Transformation。 这个文档已经写得很清楚了所以这里便不再重复。