Sur le contexte des fonctions de clonage, l'un des objets utilisés est le ValueToValueMapTy &VMap
qui est un typedef
de ValueMap<const Value *, WeakVH>
.Dans LLVM, comment puis-je obtenir un ValuetoValueMapTy (VMap) d'une valeur? Quel est son but?
Par exemple, il est utilisé pendant cloneFunctionInto(...)
dans llvm/lib/Transforms/Utils/CloneFunction.cpp
Ainsi j'ai des questions qui me aider à clarifier son but:
- Est-ce que chaque
llvm::Value
a son sur VMap? Ou cela appartient seulement à des fonctions ou des modules ou quoi? - Comment puis-je obtenir cette ValueMap pour une fonction spécifique?
- Est-il correct que son but est de contenir des informations de
llvm::Values
de la fonction?
ps .:
J'ai déjà vérifié ces liens qui peuvent être utiles aux autres de poser des questions sur Vmap, mais aucun d'entre eux pourrait complètement répondre à mes questions.
What to pass for the vmap argument of CloneFunction in llvm?
Filling the LLVM CloneFunction VMAP
Ainsi, le processus est le suivant: premier enregistrement I et plus tard, je remapper? C'est pourquoi je peux le laisser tomber après? – nico
Je ne suis pas sûr de comprendre votre question. J'ai ajouté un exemple dans ma réponse. J'espère que cela aide. –
V2 (ou VMap [V]) et V sont-ils liés ensemble? Etre la même chose? Ou sont-ils deux objets différents dans deux fonctions différentes et l'un ne dépend plus du cycle de vie de l'autre? – nico