Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
が与えられたllvm.dbg.declare場合、その llvm 値を取得するにはどうすればよいですか?
llvm.dbg.declare
例えば
call void @llvm.dbg.declare(metadata !{i32** %r}, metadata !23), !dbg !24
i32** %rメタデータではなく、値を取得したい!{i32** %r}。
i32** %r
!{i32** %r}
コードを教えてください!
ありがとう!
metadata !{i32** %r}call 命令i32** %rの第 1 オペランドであり、メタデータの第 1 オペランドです。したがって、次のようなものが機能するはずです。
metadata !{i32** %r}
CallInst I = ... // get the @llvm.dbg.declare call Value* referredValue = cast<MDNode>(I->getOperand(0))->getOperand(0);