Вопросы по теме 'llvm-ir'
Как узнать, находится ли llvm::Instruction в пределах управления потоком?
С LLVM я пытаюсь выяснить, присутствует ли инструкция в управлении потоком (if/switch/for) и т. д., и я должен сделать это на уровне IR. Псевдокод выглядит примерно так, как показано ниже.
if cond
inst
endif
Я смотрю на SCC функции, но я...
895 просмотров
schedule
26.12.2023
в llvm не создается терминатор базового блока
я новичок в llvm и только сделал онлайн-учебник здесь: http://llvm.org/docs/tutorial/LangImpl1.html Теперь я хотел сделать свой собственный маленький язык и столкнулся с небольшой проблемой. Я хочу разобрать это:
(def i 1)
Он должен делать...
3529 просмотров
schedule
29.10.2023
Преобразование LLVM-IR в C-подобный язык
Я работаю над проектом, в котором мне нужно написать код для преобразования LLVM-IR в C-подобный язык. Этот язык имеет конструкции, очень похожие на C. Проведя небольшой опрос, я обнаружил, что до версии 3.0 LLVM существовал файл с именем...
2011 просмотров
schedule
05.12.2022
Константа времени компиляции во встроенный LLVM
У меня есть константа времени компиляции, и мне нужно передать ее встроенному через ее аргументы, например.
@1 = private constant [4 x i8] c"dev\00", align 1
// intrinsic
define linkonce i32 @myIntrinsic( i32 %p0 ) alwaysinline {
%r0 = call i32...
144 просмотров
schedule
22.04.2023
Ошибка LLVM при доступе к loopinfo в проходе функции
Я пытаюсь получить информацию о цикле от IR, написав функцию pass. Поэтому я последовал некоторым примерам и написал следующее. Я не очень хорошо разбираюсь в написании пассов и менеджеров пассов.
#include <iostream>
#include...
1801 просмотров
schedule
21.07.2022
анализ данных и циклических зависимостей с помощью LLVM
Кто-нибудь знает, как я могу выполнить анализ зависимости от данных/цикла с помощью LLVM и clang?
Глядя на веб-страницу пропусков -da , очевидно, было упомянуто, что этот проход выполняет свою работу, но использование этого прохода ничего не...
1550 просмотров
schedule
13.06.2024
Создать работоспособный LLVM IR из сценария Julia?
Мне интересно, как преобразовать код Julia в работающий LLVM IR (файл *.ll).
Существует команда с именем code_llvm , которая может скомпилировать функцию Julia в LLVM IR. Но его результат содержит что-то вроде %jl_value_t* , который кажется...
910 просмотров
schedule
26.10.2022
как использовать встроенные функции llvm @llvm.read_register?
Я заметил, что llvm.read_register() может читать значение указателя стека, а llvm.write_register() может устанавливать значение указателя стека. Я добавляю основную функцию в stackpointer.ll , которую можно найти в llvm src:
;stackpointer.ll...
660 просмотров
schedule
02.02.2024
Как различать знаковые и беззнаковые целые числа в LLVM
Проект LLVM не делает различий между целыми числами со знаком и без знака, как описано здесь . Бывают ситуации, когда вам нужно знать, следует ли интерпретировать конкретную переменную как знаковую или как беззнаковую, например, когда она...
3394 просмотров
schedule
20.02.2024
Как разобрать PNaCl как удобочитаемый LLVM IR?
У меня есть .pexe и я хочу получить IR-код LLVM. Как это может быть сделано? Это файл, который я хочу преобразовать в LLVM IR: NaClAMBullet.pexe
Я не понимаю, почему это еще не читаемый код LLVM IR:
Портативный исполняемый файл PNaCl...
145 просмотров
schedule
14.08.2023
Clang создает локальное хранилище в LLVM IR
Я изучаю LLVM IR через Clang и обнаружил, что функция C выглядит так:
int inc(int x)
{
return x+1;
}
Генерирует этот IR (оптимизации отключены):
define i32 @inc(i32 %x) #0 {
entry:
%x.addr = alloca i32, align 4
store i32 %x, i32*...
265 просмотров
schedule
18.01.2024
Общее расположение пространства памяти NVPTX в архитектуре
В NVPTX(LLVM IR) для программ CUDA есть идентификаторы адресного пространства памяти от 0 до 5 (см. Таблицу ниже).
Я видел в той же программе LLVM IR, что адреса памяти идентифицируются как «Generic» или другие типы, как показано на...
499 просмотров
schedule
04.07.2022
Что означает эта встроенная сборка в тестовом примере LLVM-IR CodeGen?
Я пытаюсь понять тестовый пример LLVM CodeGen/Generic, чтобы я мог передать его для бэкэнда для нового процессора.
Это тестовый пример (llvm/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll):
; RUN: llc -no-integrated-as < %s
; XFAIL:...
531 просмотров
schedule
23.02.2023
Как -fPIE передается в llc?
Я работаю над бэкэндом LLVM для новой архитектуры, и нам нужны исполняемые файлы, независимые от позиции. Я могу передать «-fPIE» в командной строке clang, но я не вижу никаких указаний на это в результирующем LLVM IR. Например, если я запускаю:...
1199 просмотров
schedule
24.07.2023
Инструкция вызова llvm irbuilder выдает исключение при проходе встраивания функции
Я новичок в LLVM. Я использую API Clang C++ для компиляции нескольких файлов-заглушек (в c) в IR, а затем склеиваю их вместе с помощью IR Builder (после их связывания), чтобы в конечном итоге запустить через JIT.
Все это прекрасно работает, если...
173 просмотров
schedule
18.04.2023
Генерация исполняемого файла Rust из битового кода LLVM
Как я могу сгенерировать исполняемый файл приложения, написанного на Rust, который был скомпилирован в биткод LLVM-IR?
Если я попытаюсь скомпилировать файл .bc с помощью rustc, он скажет мне stream did not contain valid UTF-8 , и я не могу понять,...
2020 просмотров
schedule
20.03.2023
Как Clang генерирует код для параметров функции?
В функции я хочу знать, как параметры передаются в тело функции, чтобы отслеживать поток параметров. Я попробовал простой код и обнаружил, что для каждого параметра существует шаблон alloc - store , интересно, правда это или нет?
Демонстрационный...
599 просмотров
schedule
01.06.2023
Как вставить инструкцию предварительной выборки в LLVM?
У меня есть результат инструкции getelementptr, который является адресом, с которого мне нужно выполнить предварительную выборку.
525 просмотров
schedule
20.02.2023
Почему шаблонные функции не отображаются в LLVM-IR?
Почему шаблонные функции не отображаются в LLVM-IR, если функция не вызывается при генерации LLVM IR из кода C++, в отличие от других типов функций (int, float...), которые будут присутствовать в примере llvm ir: следующая функция func1 не...
681 просмотров
schedule
14.05.2024
Выполнение кода LLVM IR, сгенерированного из исходного кода Rust/Python.
Когда я генерирую IR-код LLVM из C++, я могу использовать консольную команду clang++ -emit-llvm –S test.cpp , чтобы получить файл test.ll, который представляет собой LLVM IR, который мне нужен.
Чтобы получить исполняемый файл, выполните следующие...
1753 просмотров
schedule
17.05.2024