Описание тега llvm-ir
The LLVM Intermediate Representation
0
ответов
Почему "-fno-inline" приносит плохую производительность в Clang?
Мы используем clang для компиляции кода IR, а затем выполняем IR в каком-то месте. По некоторым причинам мы добавляем "-fno-inline" в параметры компиляции, что приводит к очень плохой производительности. До того, как код IR занимает менее 1 мс, посл…
25 сен '18 в 11:37
1
ответ
Создайте глобальный вектор, используя LLVM IR Builder
Я хочу создать LLVM IR для следующего выражения, чтобы добавить скаляр к вектору [1,2,3,4]+1 Я нашел правильные методы для создания сложения и скалярного выражения, но не для вектора. Value *L = //Missing code here Value *R = ConstantFP::get(getGlob…
18 июл '14 в 08:32
3
ответа
Нет совпадения для оператора * для экземпляров
Я пытаюсь сгенерировать код для определенного языка, используя bison, flex и llvm. Вот часть кода (точки обозначают код, не связанный с вопросом) для объединения и раздела правил: %union { Node *node; NBlock *block; NMethodCall* methodcall; . . . st…
10 янв '17 в 21:29
1
ответ
Документация по коду операции LLVM IR
Я прочитал справочник по языку LLVM IR и формат файла битового кода, но я не нашел никакой документации, содержащей список кодов операций или объясняющий кодировку инструкций. Есть ли место, где можно было бы найти эту информацию, или необходим поис…
20 май '14 в 04:57
3
ответа
Абстрактная интерпретация в LLVM
Мне нужно использовать абстрактную интерпретацию, чтобы провести некоторый анализ с использованием LLVM. Это возможно? или мне нужно проще использовать инструменты анализа. Если бы я мог сделать это с помощью LLVM, какие классы помогли бы мне сформу…
12 дек '15 в 12:56
1
ответ
Инициализируйте большой массив i8, используя небольшую строку в LLVM IR
Я хочу инициализировать большой массив i8 в LLVM IR с небольшой строкой. Я хотел бы сделать что-то вроде этого: @str = [1024 x i8] c"Hello World!\0A\00" Обратите внимание, что длина строки составляет всего 14 (или 13, если вы не учитываете нулевой б…
17 ноя '15 в 03:36
1
ответ
LLVM преобразовывает константу в значение
Я использую пользовательский проход LLVM, где, если я сталкиваюсь с хранилищем, куда компилятор преобразует значение в константу; например, есть явное хранилище: X[gidx] = 10; Тогда LLVM сгенерирует эту ошибку: aoc: ../../../Instructions.cpp:1056: v…
31 мар '14 в 15:50
1
ответ
Что означает эта встроенная сборка в тестовом наборе CodeLen LLVM-IR?
Я пытаюсь понять тестовый набор LLVM CodeGen/Generic, чтобы получить его за бэкэнд для нового процессора. Это тестовый сценарий (llvm/test/CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll): ; RUN: llc -no-integrated-as < %s ; XFAIL: sparc-sun-s…
30 сен '15 в 23:13
4
ответа
Язык вывода компилятора - LLVM IR против C
Для написания компилятора, в чем преимущества и недостатки использования LLVM IR против C для целевого языка? Я знаю, что оба они используются, и я думаю, что конечный машинный код был бы похож, если бы я использовал clang для компиляции C. Так что …
22 апр '12 в 02:08
1
ответ
Получить доступ к LLVM IR вызова функции библиотеки C
У меня есть код C (например, называется ac), который вызывает функцию, такую как мы printf, textcolor а также gotoxy из stdio.h/curses.h. LLVM-IR для ac будет только объявлять эти функции и показывать, что эти функции были вызваны, что означает, ч…
02 окт '14 в 01:14
0
ответов
Генерация LLVM IR из кода на Haskell
Моя цель - взять исходные коды на разных языках (в основном C, C++, Obj-C и Haskell) и рассказать о них любую статистику. (например, количество переменных, функций, выделения памяти, сложность и т. д.) LLVM, казалось, был идеальным инструментом для …
27 окт '15 в 23:52
0
ответов
Используя Instruction::moveBefore(Instruction *movPos) в LLVM IR
Как переместить Instruction в BasicBlock(пусть BB1) в другой BasicBlock(пусть BB2), когда BB1 и BB2 находятся в одной и той же функции? Я писал проход LLVM для выполнения этой части кода: if(cur_fun->getName() == "main"){ int i = 1; Instruction &…
17 окт '17 в 06:52
1
ответ
В LLVM IR отсутствуют номера виртуальных регистров
Рассмотрим следующие два примера: int test_plus(int a, int b) { int c = a + b; return c; } int reg_incr(int a) { int b = a + 1; return b; } IR LLVM будет: ; Function Attrs: nounwind ssp uwtable define i32 @test_plus(i32, i32) #0 { %3 = alloca i32, a…
02 фев '18 в 23:57
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
2
ответа
Как узнать, какой указатель указывает на конкретный объект в c/ C++?
Я хочу знать, какие указатели указывают на конкретный объект во время выполнения в c/ C++. Например, у меня есть объект A, теперь я хочу сделать что-то для A, например, изменить адрес памяти A, в этот момент я должен знать, сколько есть указателей, …
03 июн '17 в 06:33
0
ответов
Как повторно инициализировать llvm::GlobalVariable
Я пытаюсь создать функцию в llvm IR, которая переназначает все llvm::GlobalVariable их начальным значениям. Я попытался решить эту проблему, сначала перебирая все llvm::GlobalVariable из llvm:: Module, а затем для каждого llvm::GlobalVariable, котор…
17 мар '16 в 20:12
0
ответов
Создать инструкцию по добавлению в LLVM IR
Я хочу создать инструкцию добавления, которая принимает два постоянных операнда на LLVM IR уровень. Я использую IRBuilder класс, но ничего не происходит. Вот часть runOnFunction() метод моей функции pass: LLVMContext &Context = F.getContext(); I…
07 авг '18 в 00:29
2
ответа
Как мне сгенерировать битовый код LLVM для использования emscripten?
Я изучаю emscripten для личного проекта и хотел бы использовать для этого язык, отличный от C или C++. Однако, пока я занимаюсь расследованием emscripten, я решил использовать тривиальный пример "Привет, мир", написанный на C. Я знаю, что я должен с…
07 май '14 в 04:26
0
ответов
LLVM устанавливает целевое значение для WebAssembly
Я написал код в C++ для использования ядра LLVM, чтобы получить файл PHP и сгенерировать IR для классической архитектуры. Я могу запустить этот код со встроенным JIT-компилятором LLVM. Я бы сделал IR для WebAssembly. Я использую LLVM 6.0 с WebAssemb…
24 июл '18 в 12:50