#llvm #llvm-ir
#llvm #llvm-ir
Вопрос:
Есть ли какой-либо способ узнать тип переменных в коде LLVM?
Например, у меня есть следующий код:
%i = alloca i32, align 4
store i32 1, i32* %i, align 4
%n = add i32 6, 1
br label %2
И я хочу функцию, которая возвращает тип каждой из переменных %i
, %n
и %2
, т.е. соответственно i32*
, i32
и label
Есть ли какое-либо предложение?
Ответ №1:
Введите* var_type = cur_instruction-> GetType();
Ответ №2:
%i = alloca i32, align 4
store i32 1, i32* %i, align 4
и %n = add i32 6, 1
являются инструкциями. Вы можете запросить их тип с помощью их getType
метода.
%2
является базовым блоком и имеет тип label. Вы можете проверить, является ли значение базовым блоком с помощью isa
.