Помните вчерашнее обсуждение переписывания термов? Думаете, это скучно и неинтересно? И к компиляторам не относится? Напрасно!
Занимался я своими делами компиляторными сегодня и пришлось снова поиграть с тестовым набором правил алгебраических упрощений после серьезных переделок в моем raddsl.
А набор этот я вытянул из SSA-модуля компилятора Go. И каково же было мое удивление, когда набор этот не справился с совершенно безобидным выражением!
Я проверил результат на настоящем компиляторе Go — ну точно, проблема существует! Пришлось самому доработать правила.
Написал вот сейчас им issue c предложениями правок, хотя вообще Go не пользовался :)