Tags Posts tagged with "low-level virtual machine"

low-level virtual machine

przez -
6 515
LLVM

Tom Stellard ogłosił wydanie LLVM 3.4 razem z frontendem kompilatora dla języków C, C++ oraz Objective-C – Clang 3.4. Projekt LLVM obejmuje narzędzia takie jak kompilator języków C/C++/Objective-C – Clang, bibliotekę kompilatora czasu pracy (runtime compiler) compiler-rt, niskopoziomowy debugger LLDB, biblioteka standardowa libc++ dla C++ i VMKit JVM używająca LLVM dla kompilacji statycznej i JIT. Projekt jest aktualnie konkurencją dla kompilatora GCC, prace nad nim są sponsorowane przez Apple, a wszystko wydawane jest na licencji BSD.

Co znajdziemy w tym wydaniu:

  • Backend LLVM dla AMD R600 GPU został domyślnie włączony i nie jest już oznaczony, jako eksperymentalny.
  • Pojawiła się obsługa karty graficznej AMD Sea Islands, a także zgodność OpenGL 3.0
  • Loop Vectorizer jest używany z poziomami optymalizacji -Os i -O2, zamiast -O3
  • Dodano nowy SLP Vectorizer dla poziomu optymalizacji -O3
  • Sporo pracy włożono w rozszerzenie i udoskonalenie dowiązań LLVM OCaml
  • Dodano obsługę architektury MIPS SIMD
  • Dokonano sporo udoskonaleń w backendzie PowerPC, w tym szybsza generacja kodu, wsparcie dla nowych funkcji procesora, naprawiono błędy itp
  • Dodano eksperymentalny backend SPARC V9, obsługę SPARC JIT i udoskonalono wsparcie architektury SPARC
  • Porzucono wsparcie dla starszych wydań Visual Studio. Jest to także ostatnie wydanie LLVM, budowane z użyciem kompilatora C++98, ponieważ twórcy chcą wykorzystać potencjał C++11
  • Udoskonalono obsługę AArch64
  • Udoskonalono debugger LLDB, w tym poprawiono kompatybilność z Linuksem
  • Udoskonalono Clang-cl, w tym naśladowanie Microsoft Visual Studio
  • Dowiązania OCaml powinny pokrywać się z praktycznie wszystkimi bibliotekami LLVM
  • Wskaźniki o różnych rozmiarach dla różnych przestrzeni adresowych powinny przyspieszyć karty graficznej
  • LLVM-ar używa od teraz nowej obiektowej biblioteki, dzięki czemu potrafi tworzyć tabele symboli w formacie GNU

przez -
1 347
LLVM

Projekt LLVM używa Clang, jako kompilatora front-endu w celu kompilacji programów napisanych w C, Objective-C i C++. Jednakże Low-Level virtual Machine posuwa się naprzód i zaczyna zastępować sporą część narzędzi GCC nowymi komponentami. Idąc za tytułem newsa – projekt zmienił właśnie standardową bibliotekę GNU libstdc++ na libc++.

Standardową biblioteką C++  dla LLVM jest libc++ i celuje ona w specyfikację standardu C++0x. Głównym powodem zmiany jest licencja BSD, o którą się opiera owa biblioteka, jak również sam LLVM. Z reszty zalet warto wymienić szybsze uruchamianie, minimalne zużycie pamięci, szybszy czas kompilacji, i kompatybilność ABI z GCC libstdc++ dla niektórych cech niskopoziomowych.

Biblioteka libc++ jest wspierana przez Apple, co oznacza, iż jest ona wspierana jedynie na Mac OX X i386/x86_64, ale wsparcie dla Linuksa nie jest wcale tak daleko. Stronę projektu można znaleźć na libcxx.llvm.org. Na liście mailingowej pojawiło się kilka testów, które pokazują 4 krotną szybkość nowej biblioteki.

Polecane

Jesień Linuksowa

1 698
Polska Grupa Użytkowników Linuksa ma zaszczyt zaprosić na konferencję Jesień Linuksowa 2017, która odbędzie się w dniach 22 – 24 września 2017 roku. Jako...