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