Dodawanie metadanych do instrukcji w LLVM IR

Najpierw jestem nowicjuszem w karnetach LLVM.

Próbuję dodać metadane do instrukcji w LLVM po przekazaniu transformacji (za pomocą API C ++). Zamierzam przechowywać te informacje do wykorzystania przez inne narzędzie w łańcuchu narzędzi. Mam dwa pytania na ten temat.

Oczekuję, że informacje, które przechowuję jako metadane, zostaną przekazane do innego narzędzia, które działa na LLVM IR. Czy metadane są dobrym pomysłem? Zamierzam przechowywać ciągi jako metadane z pewnymi instrukcjami.

Jeśli metadane to właściwy sposób, potrzebuję pomocy przy tworzeniu węzła metadanych. Planuję użyć funkcji setMedata (), aby dołączyć ją do instrukcji. Który wariant zestawu setMetadata () jest właściwy. Nie jestem pewien, który MDKind powinien mieć moje dane. Chcę utworzyć MDString, dołączyć go do mojego MDNode, a następnie wywołać setMetadata () z instrukcją. Jakiego kontekstu należy użyć w setMedata (), jeśli chcę dołączyć metadane do instrukcji wewnątrz funkcji. Jakie jest znaczenie kontekstu dla metadanych?

Próbowałem przeczytać wiele dyskusji na forach i dokumentach doxygen llvm, ale nie dostałem jasnej i pełnej odpowiedzi na wszystkie moje pytania. Doceniam twoją pomoc lub jakiś materiał, który może mi pomóc to zrozumieć.

questionAnswers(1)

yourAnswerToTheQuestion