BasicBlockPass 主要增加
doInitaliztion(Function &) ;doFinalization(Function &);runOnBasicBlock();
注意参数为Funtion & 和FunctionPass 的Module 引用有区别
其实都和前面相似 BasicBlockPass 比FunctionPass粒度更小
使用方式如下
namespace{
struct Hello1 : public BasicBlockPass {
static char ID; // Pass identification, replacement for typeid
Hello1() : BasicBlockPass(ID) {}
virtual bool runOnBasicBlock(BasicBlock &BB) {
errs() << "Hello1: ";
errs().write_escaped(BB.getName()) &