Сохраните результат LoadInst в Int
Когда мы создаем LoadInst в LLVM IR, результатом является указатель на значение. Если я читаю значение int
переменная называется x
с помощью LoadInst
в LLVM IR результат, который я получаю, является еще одним указателем на это значение. Как сохранить результат в int
?
1 ответ
LLVM IR не имеет ни переменных, ни int
тип. Но чтение из int x
переменная на C-подобном языке обычно переводится в инструкцию загрузки в LLVM IR, и я предполагаю, что это то, о чем вы спрашиваете.
Ответ в том, что создание любой инструкции LLVM Value*
(или указатель на подтип Value
). Вопрос в том, что это за тип. Для инструкции загрузки, если ее операнд имеет тип i32*
сама нагрузка будет иметь тип i32
- так что загрузка действительно получает фактическое значение из указателя.
Если вы хотите поместить целое число под каким-то другим адресом - сохраняя его где-то еще - вы должны использовать инструкцию store.