Mahagam (24.12.2021 18:13, просмотров: 209) ответил LightElf на Дык я именно об этом. Компилятор не смогли осилить (точнее
результат так себе) именно потому, что текст программы уже написан
на императивном языке (C, ++, еще что-то), в котором важная
информация уже потеряна. Компилятор пытается выцедить параллелизм
из текста, изначально подразумевавшего последовательное выполнение.
Т.е. сначала программист раскладывает задачу на набор
последовательных маленьких шагов, а потом компилятор пытается из
фарша слепить стейк.
я в своё время пытался обогнать memcpy самописным кодом на ARM7.
ничего не получилось. посмотрел в отладчике - там если размер
мелкий, то оно копировалось классическим методом, по байтику за
раз. но как только размер для копирования был более чем N байт, то
организовывался хитрый цикл с командами ldm stm, а некратный N
остаток копировался опять же по классике. так что нормальные
библиотеки учитывают множество различных случаев.