Вопросы по теме 'register-allocation'

Зарегистрируйте распределение и разлив, простой способ?
Я ищу способ разместить локальные переменные в регистрах. Я знаю несколько серьезных методов для этого (а именно те, которые упомянуты в Википедии ) , но я застрял в том, как выполняется "проливание". Кроме того, соответствующая литература...
8855 просмотров

максимальное число cuda в блоках и управление распределением
я пишу ядро ​​CUDA, и мне нужно выполнить на этом устройстве: name: GeForce GTX 480 CUDA capability: 2.0 Total global mem: 1610285056 Total constant Mem: 65536 Shared mem per mp: 49152 Registers per mp: 32768 Threads in warp: 32 Max threads...
565 просмотров

Однопоточные переменные области Cuda
Можно ли заставить cuda использовать однопоточные переменные области (регистр или локальная память), которые объявлены вне функции? Большинство функций моего устройства должны использовать одни и те же переменные. Вместо того, чтобы передавать...
1456 просмотров
schedule 27.07.2022

Какая программа будет иметь ромбовидный интерференционный граф, упомянутый в BRIGGS94?
Я читаю Briggs94 Улучшения в размещении регистров раскраски графиков. Просто интересно, в какой программе будет ромбовидный интерференционный график? То есть для четырех диапазонов действия w, x, y, z: w мешает x, x мешает z, z мешает y, а y...
65 просмотров

Стоимость переименования регистра x86
Следующий код, компилируемый с помощью gcc или clang на amd64 // gcc -O2 file.c -c int f(int a, int b, int c, int d) { return a & b & c & d; } производит следующую сборку: 0000000000000000 <f>: 0: 89 d0...
1178 просмотров

IR-оптимизация LLVM
Я пытаюсь перейти по этой ссылке, чтобы создать представление IR для кода c . Код c , который я использую, выглядит следующим образом: void main() { int c1 = 17; int c2 = 25; int c3 = c1 + c2; printf("Value = %d\n", c3); } Который...
1079 просмотров

Алгоритм Чейтина для распределения регистров: сколько цветов используется с регистрами R?
В моей лекции о распределении регистров / алгоритме Чейтина кажется, что мы строим граф интерференции, а затем пытаемся найти k-раскраску этого графа, где k = R, если мы можем использовать регистры R в целевой архитектуре. Однако, если мы передаем...
62 просмотров

Почему компиляторы настаивают на использовании здесь регистров, сохраненных вызываемым пользователем?
Рассмотрим этот код C: void foo(void); long bar(long x) { foo(); return x; } Когда я компилирую его на GCC 9.3 с -O3 или -Os , я получаю следующее: bar: push r12 mov r12, rdi call foo mov...
694 просмотров
schedule 18.04.2023

Почему компиляторы строят граф при распределении регистров?
Я исследовал распределение регистров и задавался вопросом, почему все они строят графики из списка живых регистров, когда может быть лучший способ сделать это. Я думаю, что они могли бы это сделать, когда количество живых регистров пересекает...
151 просмотров

В чем преимущества fomit-frame-pointer?
-fomit-frame-pointer означает, что нам не нужно нажимать %rbp и перемещать %rsp, %rbp; нам нужно только изменить значение %rsp. Насколько я думаю, фрейм стека, работающий с базовым указателем, и фрейм стека без него не имеют различий с точки зрения...
109 просмотров