gpt4 book ai didi

c++ - 在 LLVM 中,如何获取值的 ValuetoValueMapTy (VMap)?它的目的是什么?

转载 作者:行者123 更新时间:2023-11-28 01:44:43 27 4
gpt4 key购买 nike

在克隆函数的上下文中,使用的对象之一是 ValueToValueMapTy &VMap这是 typedefValueMap<const Value *, WeakVH> .

例如,它在cloneFunctionInto(...)期间使用在llvm/lib/Transforms/Utils/CloneFunction.cpp

因此我有问题可以帮助我阐明其目的:

  1. 是否每个 llvm::Value它在 VMap 上吗?或者这只属于功能或模块或什么?
  2. 如何为特定函数获取此 ValueMap?
  3. 它的目的是保存 llvm::Values 的信息是否正确?的功能?

附言:

我已经查看了那些可能对其他人在Vmap上提问有帮助的链接,但没有一个能完全回答我的问题。

What to pass for the vmap argument of CloneFunction in llvm?

Filling the LLVM CloneFunction VMAP

LLVM CloneFunction.cpp

最佳答案

CloneFunction 中的 ValueMap 的目的是记录从源函数中的值到克隆函数中的值的映射。

例子:

Function *F;
Value *V = /* some register in F */;
ValueToValueMapTy VMap;
auto *Clone = CloneFunction(F, VMap);
// V2 represents essentially the same register as V,
// except it's in Clone instead of F
Value *V2 = VMap[V];

关于c++ - 在 LLVM 中,如何获取值的 ValuetoValueMapTy (VMap)?它的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45623231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com