Возможно ли запустить компилятор LLVM с вводом 32-разрядного кода x86? Существует огромный алгоритм, в котором у меня нет исходного кода, и я хочу, чтобы он работал быстрее на одном и том же оборудовании. Могу ли я перевести его с x86 на x86 с оптимизацией.Перекомпилируйте код x86 с LLVM на несколько быстрее один x86
Этот код работает долгое время, поэтому я хочу сделать статическую перекомпиляцию. Кроме того, я могу выполнить профиль времени выполнения и дать подсказки LLVM, какие ветви более вероятны.
Оригинальный код написан для x86 + x87 и не использует SSE/MMX/SSE2. После перекомпиляции У него есть шансы использовать x86_64 и/или SSE3. Кроме того, код будет регенерироваться более оптимальным способом аппаратного декодера.
Спасибо.
Это не ответ, но я помню, что были созданы программы для Amiga для «оптимизации» кода, скомпилированного для MC68000, чтобы он быстрее работал на более новых процессорах за счет совместимости. Но я не знаю такой попытки для x86. – liori
ИМО, вам, возможно, потребуется больше времени, используя что-то вроде IDA и hex-лучей или Ollydbg, чтобы перепроектировать сборку обратно на язык более высокого уровня (C или C++). – Necrolis
[RevGen] (http://stackoverflow.com/questions/ 9359487/source-code-of-revgen-tool) является одним из x86-> LLVM-переводчиков. Он также имеет переводчик от x86 до статического двоичного. Он использует Qemu и модифицированный MIPS TCG, который генерирует IR. – osgx