SWL是一个地图,其中我将商店地址作为键,常量作为其对应值。但是,当我检查在加载中使用此存储时,我尝试用常量替换存储指令的用法。这样做不会取代指令。运行此传递后,字节代码没有变化。
std::map<Value*,Value*> SWL;
for (User::op_iterator OI = I.op_begin(); OI != I.op_end(); ++OI)
{
Value *v = *OI;
std::map<Value*,Value*> :: iterator re = SWL.find(v);
if(re != SWL.end() && isa<LoadInst>(&I))
{
I.replaceAllUsesWith(re->second);
bRet = true;
}
}
答案 0 :(得分:0)
我正在进行opt -load sample.dylib -passname sample.bc&gt; / dev / null,而不是将其作为&gt; change.bc指向其他文件。当我这样做并做一个llvm-dis of change.bc时,我可以看到变化。