From 017b42e5b34d936e606298542b203e30890e8ad1 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Mon, 9 Jan 2023 20:40:30 +0300 Subject: [PATCH] =?utf8?q?=D0=A2=D0=B5=D1=81=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?utf8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA?= =?utf8?q?=D1=82=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=80=D0=B0=D0=B1=D0=BE?= =?utf8?q?=D1=82=D1=8B=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=82?= =?utf8?q?=D0=BE=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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-решатель, который оценивает идентичны ли результаты до и после оптимизации. -- 2.50.0