Во всем мире у меня возникает ощущение, что писать компилятор C для компилятора уже не такая хорошая идея. GHC C backend больше не активно развивается (это мое неподдерживаемое чувство). Компиляторы нацелены на C- или LLVM.
Как правило, я бы подумал, что GCC - хороший старый зрелый компилятор, который хорошо выполняет оптимизацию кода, поэтому компиляция на C будет использовать зрелость GCC для получения лучшего и быстрого кода. Это не так?
Я понимаю, что вопрос во многом зависит от характера компилируемого языка и от других факторов, таких как получение более удобного кода. Я ищу довольно общий ответ (w.r.t. скомпилированный язык), который фокусируется исключительно на производительности (без учета качества кода,..etc.). Я был бы также очень рад, если бы ответ включал объяснение, почему GHC дрейфует от C и почему LLVM лучше работает в качестве backend (см. Это) или любые другие примеры компиляторов, делающие то же самое, что я не знаю.