たとえば、LLVMでaValue*
をifにキャストできるかどうか教えてください。私の特定のコードでは:Instruction*/LoadInst*
isa<LoadInst>(MyValue)
Value* V1 = icmpInstrArray[i]->getOperand(0);
Value* V2 = icmpInstrArray[i]->getOperand(1);
if (isa<LoadInst>(V1) || isa<LoadInst>(V2)){
...
if(isa<LoadInst>(icmpInstrArray[i]->getOperand(0)))
LoadInst *LD100 = cast<LoadInst>(icmpInstrArray[i]->getOperand(0));
Value *C100 = LD100->getPointerOperand(); //HERE COMPILATION ERROR
さらに、作成する必要がありC100->getName()
、ロードされた変数を取得します。
コンパイルエラーは次のとおりです。error: ‘LD100’ was not declared in this scope.
そんなキャストは使えないと思います。ICMP命令に対応するLoad命令からロードされた変数を取得する方法を教えてください。または、Load命令をどのように抽出できicmpInstrArray[i]->getOperand(0)
ますか?