LLVM 3.4 инструкции по изменению тегов

#llvm

Вопрос:

Я хотел бы иметь возможность определить, какая часть программы была изменена предыдущим проходом LLVM.

Как я могу пометить инструкции / базовые блоки и функции, такие как я могу получить, что проход P1 ранее изменил эту часть кода ?

Я хотел бы достичь чего — то вроде:

 // First pass
...
tag<bool>(instruction, "modified");


// Second pass
if(has_tag<bool>(instruction, "modified"))
    do_something...
 

Есть ли в LLVM функция, позволяющая создать такую систему тегов ?

Комментарии:

1. Это звучит так, как будто вы хотите реализовать разницу. LLVM не содержит ничего подобного.

Ответ №1:

Вы можете посмотреть на движок LLVM diff в его наборе инструментов: https://github.com/llvm/llvm-project/blob/main/llvm/tools/llvm-diff/llvm-diff.cpp