Миша, а ты когда спишь?>> Уже много раз писал/пояснял, но на всякий повторю.
>> LLVM выстроен под RISC/CISC, натягивать его на VLIW не рационально.
> Передал, ответили:
Тут (видимо) какое-то недопонимание и/или "сломанный телефон".
Во-первых они сами (но уже не помню кто именно) говорили про трудности и "фарш обратно".
Во-вторых: loop fusion, sinking, load/store motion, и чего-то там еще иногда достаточно сильно мешают.
В-третьих: в LLVM есть куча различных перетасовок и трансформаций нацеленных на "выпрямление" кода для традиционных регистровых архитектур. И вот все эти пертурбации нередко "замыливают" исходную семантику запрошенных пользователем операций в исходном коде.
Т.е. все эти преобразования привносят
некоторое кол-во побочных эффектов, которые не нарушают видимую пользователем картину, но при сложной кодогенерации это создает дополнительные трудности - нужно либо кодогенерировать один-в-один с сохранением чего-то лишнего, либо посредством анализа вычленять/восстанавливать заказанный пользователем минимум.
С другой стороны, конечно VLIW-кодогенератор может переварить LLVM-овский IR и сгенерировать корректны код. Вопрос лишь в том, насколько хуже будет результат и/или насколько больше для этого потребуется времени. При этом опять-таки, можно не задействовать какие-то LLVM-оптимизации/преобразования исходного IR от фронтенда или не заморачиваться потерей 1-3% скорости в среднем "по больнице".
Тем не менее, если они исследовали вопрос и решили сделать полноценный бек к LLVM, то хвала им и почет. В этом случае, передай "алаверды" что я с удовольствием присяду им на хвост по теме https://github.com/vnmakarov/mir/issues/47. Но только я хочу попробовать свой "укладыватель тетриса", и пока у меня совсем нет времени (