Статическое одиночное присваивание - это свойство промежуточного представления компилятора для оптимизации и статического анализа.
0 ответов

Получение LLVM-IR в форме SSA

В настоящее время я создаю статический анализатор кода, и я хотел использовать Clang, llvm. То, что я хотел в качестве вывода, - это LLVM-IR в форме SSA (в виде текстового файла) при предоставлении кода ac в качестве входных данных. Я нашел эту стра…
21 ноя '15 в 14:52
0 ответов

Выполнить код SSA

У меня есть код SSA в текстовом файле, он был сгенерирован из golang. Как я могу скомпилировать этот код SSA и выполнить его? PS У меня нет оригинального кода go.
29 июл '18 в 09:34
1 ответ

SSA для стекового машинного кода

Я работаю над компилятором для стековой машины (в частности, CIL), и я проанализировал код в графе базовых блоков. Отсюда я ищу применение SSA к методам, но это не слишком хорошо. Моя первая попытка (при работе с плоским списком, а не с графиком) со…
27 фев '09 в 03:03
1 ответ

Использование SSA с разделением по краям

Представление кода в статическом одиночном присваивании (SSA) является почти, но не совсем каноническим; Есть два варианта, ванильный и с разделением по краям, в которых дополнительные узлы вставляются по мере необходимости, чтобы каждый цикл имел т…
27 апр '18 в 16:07
1 ответ

Ориентиры для размещения регистров в SSA-форме

Я хочу сделать раскраску графа на хордовых графах. Мне нужны графики аккордов и их результаты, чтобы сравнить мою работу с темой. Может кто-нибудь мне помочь? например 164.gzip 175.vpr 176.gcc 181.mcf 186.crafty 197.parser 252.eon 253.perlbmk 254.ga…
08 фев '17 в 19:47
1 ответ

Получение "минимального" SSA от LLVM

LLVM opt -S -mem2reg pass создает так называемый "обрезанный" SSA - форму, в которой удалены все мертвые функции phi. Я хотел бы сохранить эти инструкции в IR, получив "минимальный" SSA, но я не могу найти простой способ сделать это. Обречен ли я ре…
16 авг '15 в 16:12
1 ответ

LLVM opt mem2reg не имеет никакого эффекта

В настоящее время я играю с LLVM и пытаюсь написать несколько оптимизаторов, чтобы ознакомиться с opt и clang. Я написал файл test.c, который выглядит следующим образом: int foo(int aa, int bb, int cc){ int sum = aa + bb; return sum/cc; } Я скомпили…
0 ответов

Расчет административной нормальной формы

Нормальная административная форма - это промежуточное представление кода, подходящего для использования компиляторами, которое логически эквивалентно статическому одиночному назначению, но имеет некоторые преимущества, например, проверка того, наход…
26 апр '18 в 17:55
1 ответ

Могу ли я перевести AST на SSA или мне нужно перевести на CFG, а затем на SSA?

Могу ли я перевести абстрактное синтаксическое дерево непосредственно в форму SSA, или мне нужно будет создать граф потока управления, а затем создать форму статического одиночного назначения из указанного CFG? И в контексте графа потока управления:…
3 ответа

Уменьшение размерности с использованием (многовариантного) сингулярного спектрального анализа

Я дал временные ряды в различных каналах. Есть два основных колебания, "скрытых" во временном ряду и распределенных по всем каналам. Я хочу извлечь эти колебания, используя многомерный анализ сингулярного спектра (mSSA). Я новичок в SSA, и мне кажет…
07 июн '18 в 08:02
2 ответа

Преобразование SSA в стек

Хорошо известно, как преобразовать код из представления SSA в машину регистрации. (По сути, распределение регистров раскраски графа является ядром такого преобразования.) Но каков общий метод преобразования SSA в стековую машину? (Байт-код CIL, в сл…
14 июл '18 в 14:33
1 ответ

R-пакеты Rssa не импортируется в python с помощью rpy2 importr

Когда я выполнил в Python команду rssa = importr('Rssa') Я получил eroor Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> rssa = importr('Rssa') File "C:\Python34\lib\site-packages\rpy2\robjects\packages.py", li…
18 фев '15 в 20:30
0 ответов

Перейти статический анализ: найти переменные уровня пакета, доступные только для чтения

Используя статический анализ, должно быть возможно определить, какие переменные уровня пакета всегда доступны только для чтения... то есть значение после инициализации никогда не изменяется программой. Моя проблема с радостью будет терпеть ложные не…
18 июл '18 в 05:11
1 ответ

Включая атомные значения в базовые блоки

Преобразование выражения дерева абстрактного синтаксиса в базовый блок SSA влечет за собой запись всех операций в выражении в линейной последовательности, например x * y + 1 преобразуется в список операций, содержащих * а также + в этой последовател…
13 май '15 в 19:12
1 ответ

Генерация графа потока данных для программ на Си

Мне нужно сделать графики потоков данных для C-кодов. Под графами потоков данных я подразумеваю графы, в которых узлы графа представляют операции, такие как сложение и умножение, а ребра представляют поток операндов (данных) между узлами. Моя цель -…
19 июл '12 в 17:42
2 ответа

Быстрый расчет доминаторов

Говорят, что при преобразовании промежуточного кода в форму статического одиночного присваивания, Необходимо рассчитать доминанты базовых блоков Несколько очевидный способ сделать это в качестве фиксированной точки уравнений медленный Чтобы сделать …
19 май '15 в 07:30
0 ответов

Аккордовые графы и программы форм SSA

Мой вопрос просто о том, почему каждая программа формы SSA по умолчанию представляет хордовый граф. что я знаю о хордовом графе из Википедии хордальный граф - это тот, в котором все циклы из четырех или более вершин имеют хорду, которая является реб…
1 ответ

SSA представление обновления переменной в пределах объема

Когда компилятор использует форму SSA для представления кода, обновления локальных переменных становятся новыми переменными. Но это не всегда работает, когда переменная находится во вложенной области видимости, например (с использованием синтаксиса …
17 июл '17 в 15:08
1 ответ

В какой степени форма SSA допускает типы с нетривиальным копированием?

Я искал код IR, который указан с помощью SSA, особенно, генерируя IR LLVM в этой форме. Однако я не совсем понимаю, может ли это быть эффективным, если представлено с типом, который имеет нетривиальную семантику копирования. Например, void f() { std…
09 июн '12 в 13:39
0 ответов

Значение переменной в формате GCC SSA

Я хочу посмотреть на формат SSA, который использует GCC, поэтому я попробовал следующую простую тестовую программу: #include <stdio.h> int main(int argc, char **argv) { int n = 0; int i; for (i = 0; i < 13; i++) n += argc; printf("%d\n", n)…
29 май '18 в 08:30