Вопросы по теме 'register-allocation'
Зарегистрируйте распределение и разлив, простой способ?
Я ищу способ разместить локальные переменные в регистрах. Я знаю несколько серьезных методов для этого (а именно те, которые упомянуты в Википедии ) , но я застрял в том, как выполняется "проливание". Кроме того, соответствующая литература...
8855 просмотров
schedule
27.05.2022
максимальное число 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 просмотров
schedule
11.07.2022
Однопоточные переменные области Cuda
Можно ли заставить cuda использовать однопоточные переменные области (регистр или локальная память), которые объявлены вне функции?
Большинство функций моего устройства должны использовать одни и те же переменные.
Вместо того, чтобы передавать...
1456 просмотров
schedule
27.07.2022
Какая программа будет иметь ромбовидный интерференционный граф, упомянутый в BRIGGS94?
Я читаю Briggs94 Улучшения в размещении регистров раскраски графиков.
Просто интересно, в какой программе будет ромбовидный интерференционный график? То есть для четырех диапазонов действия w, x, y, z: w мешает x, x мешает z, z мешает y, а y...
65 просмотров
schedule
08.06.2022
Стоимость переименования регистра 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 просмотров
schedule
23.09.2023
IR-оптимизация LLVM
Я пытаюсь перейти по этой ссылке, чтобы создать представление IR для кода c . Код c , который я использую, выглядит следующим образом:
void main() {
int c1 = 17;
int c2 = 25;
int c3 = c1 + c2;
printf("Value = %d\n", c3);
}
Который...
1079 просмотров
schedule
09.08.2022
Алгоритм Чейтина для распределения регистров: сколько цветов используется с регистрами R?
В моей лекции о распределении регистров / алгоритме Чейтина кажется, что мы строим граф интерференции, а затем пытаемся найти k-раскраску этого графа, где k = R, если мы можем использовать регистры R в целевой архитектуре. Однако, если мы передаем...
62 просмотров
schedule
28.08.2022
Почему компиляторы настаивают на использовании здесь регистров, сохраненных вызываемым пользователем?
Рассмотрим этот код 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 просмотров
schedule
13.07.2023
В чем преимущества fomit-frame-pointer?
-fomit-frame-pointer означает, что нам не нужно нажимать %rbp и перемещать %rsp, %rbp; нам нужно только изменить значение %rsp. Насколько я думаю, фрейм стека, работающий с базовым указателем, и фрейм стека без него не имеют различий с точки зрения...
109 просмотров
schedule
08.09.2022