[О блоге] [наверх] [пред] [2023-01-09 20:40:30+03:00] [017b42e5b34d936e606298542b203e30890e8ad1]

Тестирование корректности работы компилятора

https://bronevichok.ru/posts/highload-2022.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106523
В докладе упоминается баг в GNU GCC:

    unsigned char f7 (unsigned char x, unsigned int y)
    { return (x << y) | (x >> ((-y) & 7)) }

где программа будет по разному отрабатывать. Бага до сих пор не закрыта.

А вообще для меня там всё магией является (до подобного не дорос, не
факт что дорасту когда-либо), хотя про технологии и инструменты слышал.
Чтобы понять не сломала ли оптимизация компилятора чего, то берётся
получающийся на этапе JIT-а IR-код, преобразуется в SMT-формулу, затем
подаётся в SMT-решатель, который оценивает идентичны ли результаты до и
после оптимизации.

    [оставить комментарий]