我被要求做一个 LLVM 函数,它允许我找到:跳转/分支、加载/存储、调用、“算术和其他类型的指令”。
就我设法做的而言,我已经能够找到使用 dyn_cast 执行以下代码的 CallInst、LoadInst、StoreInst 和 BranchInst:
for (const Function &F : *M)
for (const BasicBlock &BB : F)
for (const Instruction &I : BB)
if (const StoreInst *SI = dyn_cast<StoreInst>(&I))
count++;;
Run Code Online (Sandbox Code Playgroud)
我正在努力寻找一种提取所有算术和“其他类型”指令的方法。
谢谢你的时间。