Описание тега llvm-c++-api
LLVM is a collection of modular and reusable compiler and toolchain technologies. LLVM C++ API is the external interface users of the library employ to implement their compiler.
0
ответов
Существует ли LLVM API для установки пакета операндов funclet при обработке исключений LLVM/MSVC?
Я использую библиотеки LLVM 3.9.1 Core для реализации внешнего интерфейса компилятора, ориентированного на Windows x64. В настоящее время я реализую обработку исключений. Для Windows x64 target LLVM генерирует так называемые funclets для кода перехв…
27 фев '17 в 13:33
1
ответ
Ошибка при использовании GetElementPtrInst с ArrayRef, содержащим более одного значения
Я пытаюсь написать игрушечный компилятор с LLVM и C++. Но всякий раз, когда я пытаюсь создать GetElementPtrInst с несколькими индексами, возникает ошибка Segfault. Документация по этой инструкции мне не помогла ( API-Documentation Language-Documenta…
25 июн '12 в 08:45
1
ответ
Сборка LLVM, проблемы с передачей строки в API C LLVMSetValueName
После успешной сборки LLVM с использованием MinGW я сейчас пытаюсь использовать C API для реализации программы. В качестве начального приложения, чтобы увидеть, была ли успешной сборка, я преобразовал пример llvmpy, найденный здесь http://www.llvmpy…
13 май '14 в 17:09
0
ответов
Как добавить проход Reg2Mem для addRequired() в LLVM?
Я хочу удалить фи-узлы из моих IR-файлов llvm, поэтому я прочитал, что проход Reg2Mem является решением (почему?). Я могу легко использовать этот пропуск из opt инструмент, указав -reg2mem в качестве аргумента. Тем не менее, я хочу, чтобы эта функци…
10 мар '17 в 18:42
1
ответ
std::unordered_map Ошибка в объявлении
В Execution.cppМне нужно добавить unordered_map, Я использовал следующую инструкцию: #include <unordered_map> std::unordered_map<StringRef, std::unordered_map<StringRef, struct IntRel>> BinaryRel; но это вызывает следующие ошибки: …
01 апр '18 в 15:37
1
ответ
Девиртуализация C++ во время выполнения?
Существуют ли методы / библиотеки, которые позволяют гибко иметь иерархию классов (которая имеет virtual функции) все же, как только типы объектов были определены во время выполнения, допускает девиртуализацию вызовов функций? Для простого примера, …
18 май '15 в 23:58
1
ответ
lldb неразрешенная точка останова через API C++
У меня есть исполняемый модуль iCoreTest.exe, который динамически загружает библиотеку IRTest.rs. Я хочу отладить его через API-интерфейс lldb C++. Когда я создаю процесс "iCoreTest.exe" под lldb через lldb::SBTarget::Launch(..); все отлично работае…
22 сен '16 в 11:01
0
ответов
Как мне сказать LLVM вставить мой InlineAsm в исполняемый файл без каких-либо изменений?
Как мне сказать LLVM ввести InlineAsm в исполняемый файл без каких-либо изменений? У меня есть последовательность InlineAsmвнутри моего LLVM ModulePass, что я хочу быть уверен, будет вставлен в конкретную функцию без каких-либо изменений, таких как …
29 апр '17 в 17:35
1
ответ
Идентификация определяющей пользователя функции через lvm pass
Есть ли способ, с помощью которого я могу определить, является ли функция вызываемого абонента пользовательской или нет? Например: void foo() { printf("hello world again"); } int main() { printf("hello world\n"); foo(); } Как и в этом случае, foo() …
29 май '14 в 08:58
1
ответ
Как отобразить несколько циклов одного и того же типа под функцией в сгенерированный базовый блок в LLVM IR?
Если циклы имеют другой тип, то я могу легко идентифицировать их по имени, но если есть несколько циклов одного типа (скажем, 5 while петли), как я могу определить, какой базовый блок в IR LLVM соответствует какой петле в исходном коде? Вручную легк…
22 дек '17 в 04:55
1
ответ
LLVM: постоянные переменные
Как я могу получить все переменные (из файла байт-кода или IR-файла) с модификатором const или переменные, которые не были изменены при выполнении? Мне нужно составить список для дальнейшего использования.
27 ноя '13 в 07:24
0
ответов
Как использовать внутреннюю функцию llvm.eh.sjlj.setjmp в llvm
Я пытаюсь вставить внутреннюю функцию llvm.eh.sjlj.setjmp в мой проход LLVM. Из документации эта функция берет один аргумент, который является указателем i8* на буфер из пяти слов, который сохраняет текущую среду. Я использую следующий метод для соз…
19 окт '17 в 20:01
1
ответ
Доступ к переменной Element of Array в llvm
Я хочу получить значение массива по индексу переменной. Индекс рассчитывается программой и не известен во время анализа. Таким образом, он сохраняется в Value и преобразуется в Int следующим образом: Value *IndexV = Index->Codegen(); Value *IntV …
11 апр '13 в 23:19
1
ответ
LLVM получает операнд и lvalue имя инструкции
Для инструкций LLVM IR, таких как %cmp7 = icmp eq i32 %6 %7 Я хочу получить все три имени регистра / символа (т.е. %cmp %6 and %7) Теперь я могу получить строку %cmp по команде pi->getName() где пи - указатель инструкции. Но когда я пытаюсь получ…
26 июн '14 в 15:38
2
ответа
Ошибка LLVM при доступе к loopinfo при передаче функции
Я пытаюсь получить информацию о цикле от IR, написав проход функции. Поэтому я последовал некоторым примерам и написал так: Я не очень знаком с написанием пропусков и менеджеров пропусков. #include <iostream> #include "llvm/LLVMContext.h" #inc…
23 сен '14 в 22:45
0
ответов
LLVM запускает PassManager (не устаревший)
Как мне запустить не унаследованный PassManager? Я попытался сделать следующее, но при попытке сделать недействительным диспетчер анализа в функции запуска возникло исключение. Есть ли что-то еще, что я должен сделать для инициализации? llvm::Analys…
31 июл '17 в 08:27
1
ответ
Выполнение стандартной оптимизации проходит на модуле LLVM
Скажем, у меня есть действующий модуль LLVM: std::unique_ptr<llvm::Module> module; Я хочу запустить на этом традиционные этапы оптимизации LLVM: llvm::PassBuilder passBuilder; llvm::ModulePassManager modulePassManager = passBuilder.buildPerMod…
27 ноя '18 в 14:24
2
ответа
Clang Tool: переписать ObjCMessageExpr
Я хочу переписать все сообщения в моем коде, мне нужно заменить только селекторы, но мне нужно иметь возможность заменить вложенные выражения, например: [super foo:[someInstance someMessage:@""] foo2:[someInstance someMessage2]]; Я пытался сделать э…
06 дек '13 в 08:02
1
ответ
Выполнить все пропуски LLVM
У меня есть модуль LLVM, и мне было интересно, есть ли простой способ запустить все проходы оптимизации LLVM с использованием API C++ для -O3 (без необходимости регистрировать каждый проход отдельно).
25 июн '15 в 22:29
1
ответ
Заполнение LLVM CloneFunction VMAP
Я хочу написать некоторый код, который, учитывая функцию F LLVM, создает точную копию в том же модуле (таким образом, копия может быть изменена позже при сохранении оригинала). Я хочу сделать это с помощью метода CloneFunctionInto. Моя текущая попыт…
16 фев '16 в 19:45