сделать компилятор LLVM, а остальную обвязку взять готовую с clang или gcc?
clang уже заняты и есть результаты. https://ce.mentality.rip/z/fefv1o
Когда начинался lcc, llvm ещё не существовал. А теперь нужно потратить кучу человеко-лет, чтобы перенести все специфичные наработки туда, если захочется переходить.
Ну и в плане обвязки сейчас уже есть транслятор с llvm ir в представление lcc, так что де-факто уже есть возможность приделывать к lcc фронтенды от llvm. Например, так сделан rust, НЯП.
При этом ещё и сам ЛЛВМ не очень под ВЛИВ оптимизирует. Там оптимизации больше под РИСК заточены, а конкретнее под АРМ, так как туда Яблоки активно вкладываются и он у них основной компилятор.
ЕМНИП CE сам прописывает -O2 для С++
А в сравнении на LCC c O3 не очень даже на простом примере.
Обсуждают сегодня