Я пишу проход LLVM, который загружает число объявленных переменных в ядре openCL.Для этого мне нужно включить информацию об отладке и получить доступ к информации @llvm.dbg.declare
.
Я перебираю все инструкции функции и использую шаблон isa<CallInst>
для идентификации инструкций вызова.
Теперь есть два случая, у меня может быть либо
call void @llvm.dbg.declare(metadata float addrspace(1)** %4, metadata !20, metadata !DIExpression()), !dbg !21
или
%6 = call i32 @get_global_id(i32 0), !dbg !25
Как можноЯ проверяю, что CallInst
имеет метаданные, связанные с ним, то есть он имеет @llvm.dbg.declare
внутри, а затем, как извлечь имя объявления переменной (подозреваю, с помощью метода getOperand()
?