Проблема с инлайнингом не в том, что он медленный. Он, как раз, один из самых быстрых пассов обычно. Проблема с инлайнингом в том, что из-за него разбухают функции и все остальные анализы и оптимизации работают сильно медленнее, если учесть, что в компиляторах квадратичная сложность - это "охуеть как быстро". Теперь берём инлайнинг, который этот квадрат возводит ещё в квадрат, грубо говоря. Получаем тормоза. Причём, из-за того, что инлайнинг - быстрая оптимизация, она не будет видна в профиле как горячее место. Поэтому кстати, в гошном компиляторе инлайнинг очень ограничен - чтобы не замедлять компиляцию слишком сильно. Короче, агрессивный инлайнинг имеет смысл делать на поздних тирах многотирового JIT, а не сразу же.
Не понимаю, почему все не делают как у раста - дебаг сборка, которая быстрая без лишниз оптимизаций, и релизная сборка, которая собирается очень медленно, зато все оптимизированно и всем пофиг, потому что собирается на CI.
Сложно обеспечить идентичную семантику? Или не дает инлайнинг бонуса, потому что джит заинлайнит?