Я работаю над программой для оптимизации посткомпиляции. Поскольку я заметил, что есть несколько особых случаев, которые gcc просто не оптимизирует, даже при -O3.Как я могу программно редактировать двоичный файл (x86)?
Есть ли библиотека, которая позволила бы мне загрузить двоичный файл (x86) в некоторую структуру данных, которая была бы подходящей для редактирования, а затем записать ее снова? Я также хотел бы, чтобы он обрабатывал обновления всех смещений памяти, поскольку изменения могут изменять размер двоичного файла.
Разберите, редактировать разобранный код с любыми инструментами вам нравится, а затем собрать? – nrz
Не можете ли вы вместо gcc вывести asm (опция -S), отредактировать этот файл и скомпилировать отредактированный файл .s? Или еще лучше, патч gcc, чтобы он работал лучше? Кстати, есть ли в gcc's bugzilla запись об этих пропущенных оптимизациях? –
См. Objdump и его код. –