I add a function named "vectorizeBasicBlock" which allow users to
perform basic block vectoirzation inside their pass. But i am not sure
whether i missed something as no one use the function right now (But
it will be used by Polly sometimes later).
In addition, we (tobi and me) also want to make the vectorizer being
configured command line flags. To achieve this, we are going to patch
the pass so that it do not read the options like ReqChainDepth,
SearchLimit, SplatBreaksChain, ... etc. from the command line option
directly, but read from an instance of the VectorizeConfig class,
where the VectorizeConfig class is designed to provide the vectorize
related parameters to to the BBVectorize pas.
After this, people can pass target specific vectorize configuration to
the BBVectorize pass in tools like LLC. And original
createBBVectorizePass function can create a VectorizeConfig that read
the configuration from the commandline options and pass it to the
BBVectorizePass, hence users can still control the behaviour of the
pass with command like option.
Any comment or suggestion is appreciated.