Вывод подпрограмм

Есть ли какой-либо документ, описывающий какой-либо алгоритм / метод для вывода подпрограмм из скомпилированной программы? Другими словами: существует ли алгоритм для поиска блоков кода, которые встречаются в программе более одного раза? В этих блоках можно было бы переупорядочить инструкции (конечно, без изменения поведения программы), чтобы было больше шансов найти совпадение.

Этот процесс можно рассматривать как противоположность встраиванию подпрограмм, которое выполняется компиляторами, чтобы избежать вызовов, но увеличивая двоичный размер.

Мне кажется, что это очень сложная теоретическая проблема.

6
задан philix 6 December 2011 в 21:39
поделиться