Wydano nową wersję QBE – uniwersalnego backendu do tworzenia kompilatorów.
QBE różni się od najbliższego odpowiednika (LLVM) o wiele prostszą bazą kodową, wyższą szybkością działania i kompilacji (sam QBE kompiluje się z źródeł w mniej niż sekundę na Core2Duo) oraz bardziej przyjaznym dla programisty API, w tym prostszym językiem pośrednim (IL). QBE nie jest przeznaczony do tworzenia przemysłowych kompilatorów z wysokimi wymaganiami co do jakości generowanego kodu, ale dobrze nadaje się do projektów hobbystycznych i prototypów.
Obsługiwane jest generowanie kodu binarnego dla architektur x86_64, AArch64 i RISC-V (rv64). Wśród projektów wykorzystujących QBE można wymienić kompilatory języka C cproc, SCC, PACC, a także kompilatory języków Hare i Antimony. QBE jest również używany w ramach kursu rozwoju kompilatorów w Instytucie Programowania Systemowego RAN im. W.P. Iwannikowa.
Wśród zmian w nowej wersji:
- Dodano wsparcie dla Windows ABI;
- Nowe optymalizacje przyspieszające generowany kod. Średnio w testach wydajność kodu z QBE wynosi około 63% wydajności kodu z GCC;
- Poprawiono wsparcie dla generacji PIE (kod niezależny od pozycji).
Kod napisany jest w języku C (C99) i jest udostępniany na licencji MIT.
Źródło: linux.org.ru
