Wydano LLVM 3.0 razem z językiem programowania Clang. LLVM jest kompilatorem napisanym w C++, który został zaprojektowany do optymalizacji compile-time, link-time, run-time, i „idle-time” programów napisanych w dowolnych językach programowania. Clang to frontend kompilatora dla języków C, C++ oraz Objective-C, stworzony w ramach projektu LLVM, który jest używany jako back-end (generator kodu natywnego i optymalizator). Celem projektu jest stworzenie alternatywy dla kompilatora z projektu GCC. Prace nad projektami sponsorowane są przez Apple, a wszystko wydawane jest na licencji BSD.
Kompilator Clang C/C++ w LLVM 3.0:
- Usprawnione wsparcie C++ w budowaniu oprogramowania, szczególnie stabilność i diagnostyka błędów w C++
- Ulepszone wsparcie C++0x, jednakże nadal niepełne
- Wsparcie kilku funkcjonalności standardu C1x
- Ulepszone wsparcie Objective-C
DragonEgg dla LLVM 3.0:
- Pełne wsparcie GCC 4.6 w celu zastąpienia optymalizatorów GCC z LLVM
- DragonEgg nie wymaga więcej łatek GCC, jednakże wtyczka ta może być bez problemu ładowana z wersjami GCC 4.5/GCC 4.6
- Dodano opcje, które pozwalają używać optymalizatorów zarówno GCC, jak i LLVM. Opcja ta pozwala dostarczyć maksymalną wydajność, jednakże jest nadal eksperymentalna
- Frontend DragonEgg dla GCC w pełni wspiera języki programowania C, C++, Fortran, i ADA. Dodano także częściowe wsparcie dla Java, Objective-C, Objective-C++, i Google Go.
Inne zmiany LLVM:
- Standardowa biblioteka C++ libc++ i compiler_rt są od teraz licencjonowane na zasadach MIT i UIUC
- Standardowa biblioteka LLVM C++ będzie oczekiwana, jako domyślna implementacja STL we FreeBSD 10.0
- VMKit – Wirtualna Maszyna Javy dla LLVM od teraz wspiera
pre-compilation
, własne metody wirtualne, lepsze wsparcie wcięcia i nowy model wyjątków - LLVM IR posiada pełne wsparcie dla atomowych operacji na pamięci, które są wymagane do wspierania C++11 (C++0x) and C1x
- Nowy „greedy” alokator rejestrów zastąpił
linear-scan
alokator rejestrów - Pomniejsze usprawnienia dla backendu MIPS
- Ulepszono nieznacznie architekturę backendu MIPS do LLVM
- AVX – Advanced Vector Extensions posiadają pełne wsparcie w LLVM i są używane w procesorach AMD Bulldozer oraz Intel Sandy Bridge
- Assembler/Diassebler posiada nowy zestaw instrukcji dla Intel Atom, Intel Ivy Bridge, SSE4a/BMI, rdrand i innych
- Niewielki wzrost wydajności dla SoC ARM Cortex-A9. Ulepszono także wsparcie serii Cortex-M i wydajność kodu ARM NEON
Narobiło się tych kompilatorów Open64 itp. A i tak GCC(g++) najlepszy :)