Вопросы по теме 'llvm-c++-api'

Как я могу вызвать эту нативную функцию из F#? (LLVMCreateJITCompilerForModule)
Я использую привязки llvm-fs и один метод, который я хотел бы вызвать, это createJITCompilerForModule , который является внешним по отношению к собственному методу LLVMCreateJITCompilerForModule в API LLVM C. Автор llvm-fs заявил, что не...
390 просмотров
schedule 26.05.2022

Почему мой оператор поиска класса шаблона черт не работает‹‹ для llvm::StringRef?
После вопроса Как я могу определить, может ли тип передаваться в std::ostream? Я написал трейт класс, который говорит, может ли какой-либо тип передаваться в поток ввода-вывода. Черта, казалось, работала хорошо до тех пор, пока я не обнаружил...
310 просмотров
schedule 05.01.2023

Ошибка LLVM при доступе к loopinfo в проходе функции
Я пытаюсь получить информацию о цикле от IR, написав функцию pass. Поэтому я последовал некоторым примерам и написал следующее. Я не очень хорошо разбираюсь в написании пассов и менеджеров пассов. #include <iostream> #include...
1801 просмотров
schedule 21.07.2022

Как вызвать указатель, указывающий на функцию C
У меня есть указатель на функцию, которую мне нужно вызвать, минуя llvm::Module::getOrInsertFunction. Этот пример не работает: static int add(int x, int y); llvm::Value *one, *two; llvm::Constant* addfn =...
176 просмотров
schedule 07.09.2023

Как различать знаковые и беззнаковые целые числа в LLVM
Проект LLVM не делает различий между целыми числами со знаком и без знака, как описано здесь . Бывают ситуации, когда вам нужно знать, следует ли интерпретировать конкретную переменную как знаковую или как беззнаковую, например, когда она...
3394 просмотров
schedule 20.02.2024

Добавьте LLVM в проект с помощью cmake
Я пытаюсь добавить LLVM в проект cmake, используя cygwin в качестве компилятора. Я скачал LLVM из установщика cygwin (только что установил все пакеты, связанные с llvm). Файлы есть, но я не могу включить LLVM в свой проект. Я попытался использовать...
6557 просмотров
schedule 10.04.2024

Использование глобальных переменных в MCJIT
Я пытаюсь JIT-компилировать некоторые функции в существующей программе C/C++ во время выполнения, но у меня возникают проблемы с инициализацией глобальной переменной. В частности, подход, который я выбрал, заключается в использовании Clang для...
451 просмотров
schedule 10.10.2023

Инструкция вызова llvm irbuilder выдает исключение при проходе встраивания функции
Я новичок в LLVM. Я использую API Clang C++ для компиляции нескольких файлов-заглушек (в c) в IR, а затем склеиваю их вместе с помощью IR Builder (после их связывания), чтобы в конечном итоге запустить через JIT. Все это прекрасно работает, если...
173 просмотров
schedule 18.04.2023

Как создать тип массива LLVM с помощью AllocaInst?
Я хочу создать LLVM ArrayType в стеке, поэтому я хотел использовать AllocaInst (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="", Instruction *InsertBefore=nullptr) . Проблема в том, что я не понимаю этот интерфейс. Я догадался, что Ty...
5189 просмотров
schedule 02.11.2022

LLVM Pass : УДАЛИТЬ всю ветку в IR возникают ошибки
Я хочу удалить инструкции перехода в ИК-коде через проход LLVM. Приведенный ниже код — мой проход функции ( Github ): virtual bool runOnFunction(Function &F) { for (auto &B : F) { for (auto &I : B) { auto...
120 просмотров
schedule 14.09.2023

Связывание библиотек LLVM в Windows с помощью CMake и MinGW
Я писал компилятор, используя LLVM в качестве бэкэнда. Файлы CMake, которые я написал до сих пор, работали в Linux, но мне не повезло в Windows. Проект разделен на библиотеку и исполняемый файл «драйвер» с собственным CMakeLists.txt в отдельных...
754 просмотров
schedule 21.05.2022

Получить размер типа LLVM/типа разыменования
Этот вопрос очень похож на этот , но я не совсем уверен, как получить размер в следующей ситуации: У меня есть тип указателя, например. i32* . Теперь я хотел бы получить размер типа «указанный на», поэтому i32 (он же 4). Прямо сейчас я...
167 просмотров
schedule 20.11.2022

Есть ли в LLVM FunctionType с именованными аргументами?
В LLVM функция выглядит так: define i32 @foo(i32, i32) Играя с lli , я заметил, что это тоже принято: define i32 @foo(i32 %first-arg, i32 %second-arg) и тогда аргументы доступны из заданных имен. Как сгенерировать такую ​​функцию...
181 просмотров
schedule 03.05.2024

Существуют ли API-интерфейсы C++ для lld?
В настоящее время я реализую компилятор для моего языка программирования. Итак, мой компилятор компилирует исходные файлы в .o объектные файлы, и, поскольку я хочу, чтобы мой язык программирования имел доступ к функциям C, таким как printf , мне...
290 просмотров

Как решить ошибку «Неопределенные символы для архитектуры x86_64» при использовании C++ API `llvm::InitializeAllAsmParsers()` в LLVM?
Я пытаюсь реализовать свой игрушечный язык программирования с LLVM в качестве бэкэнда. Я пытаюсь сгенерировать файлы .o , используя эти API для инициализации: llvm::InitializeAllTargetInfos(); llvm::InitializeAllTargets();...
166 просмотров
schedule 26.08.2023