0
我想要一些有關LLVM通過的建議。我的具體問題是:LLVM ICmpInst指令鑄造
存在具有類型指令的數組元素*的方法
bool patternDC::runOnFunction(Function &F) {
...
if (CC->operEquiv(icmpInstrArray[i], icmpInstrArray[j])) {...}
...
}
。
所調用的方法是
bool ifChecker::operEquiv(Instruction *I1, Instruction *I2)
{
...
}
但我想用從內operEquiv類ICmpInst方法。我不能做類似
ICmpInst** II1 = dyn_cast<ICmpInst*>(I1);
(來自Java的一種instanceOf()),具有鑄造編譯問題。
的ICmpInst類是在線路913從http://llvm.org/doxygen/Instructions_8h_source.html 的繼承圖是在http://llvm.org/doxygen/classllvm_1_1ICmpInst.html
我想使用ICmpInst方法式使用的對象中定義的。這些方法很難複製/複製。我最好用什麼解決方案來解決這個問題?我應該使用訪問者模式(我不太瞭解)?
謝謝你的任何建議!