LINUX.ORG.RU

Да. Собрать x86_64 компилятором.

ox55ff ★★★★★
()

Стоп. Если именно бинарник, то не знаю.

ox55ff ★★★★★
()
Ответ на: комментарий от fernandos

Ну, насчёт никак ты погорячился, именно этим занимается Эльбрус во время выполнения x86-кода, к тому же на лету. Но его успехи на этом поприще намекают, что действительно, сделать это эффективно довольно сложно.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

насчёт никак ты погорячился

Возможно, но я правда не представляю ту волшебную команду (команду, не набор команд или действий), которую ТС ищет.

fernandos ★★★
()

Ну их даже три - дизассемблер, текстовый редактор и ассемблер.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 1)

Разобрать в условно читаемый сишный код при помощи Ghidra, скомпилировать обратно под нужные фичи.

mv ★★★★★
()

есть ли волшебная команда

Да, такие системы есть, но большинство хоть сколько-то работающих — коммерческие проекты.

i-rinat ★★★★★
()

Вроде это делает маковская розетта только для запуска на их собственном железе, а не sse, avx и вот это всё

cobold ★★★★★
()

Сперва напиши и собери программку, которая использует «+avx,+sse,+etc хотя бы частично». Напиши, например, strlen.

anonymous
()

Под винду было приложение от intel, оптимизирующее exe-шники под их процессоры. Название не помню, утверждать ничего не берусь.

Siborgium ★★★★★
()

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

Писали, что теперь не проблема конвертировать 32-битный бинарь в 64 бита или вообще перенести на arm. Но видимо не все так просто, т.к. прошло лет шесть-семь, а массовой конвертации бинарников пока не видно.

anonymous
()

самый эффективный способ ускорить программу - переписать её. то, что ты придумал - это даже не полумера, а 0%-10%мера вероятно

anonymous
()

Вообще такое существует в том или ином виде, см. https://en.wikipedia.org/wiki/Object_code_optimizer, https://en.wikipedia.org/wiki/Binary_recompiler, https://en.wikipedia.org/wiki/Binary_translation

Но вряд ли ты найдешь готовое решение, которое тебе i686 в x86-64 +avx,+sse,+etc перепишет. Там столько подводных камней, что даже лень перечислять.

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)

Попробуй Dagger транслировать бинарник в LLVM IR, а его уже скомпилировать llc с оптимизацией.

rootree
()

Даже если существует такая команда, то результат вряд ли будет впечатляющим, потому что с автоматической векторизацией все очень тухло. Векторизуются только очень простые циклы, даже если использовать ffast-math. Вне циклов вряд ли что-то будет векторизоваться.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.