LLVM 9.0의 새 버전이 이미 출시되었으며이 소식이 있습니다.

Llvm

XNUMX 개월 개발 후 LLVM 9.0 프로젝트의 새 버전 출시가 발표되었습니다. GCC 호환 툴킷 (컴파일러, 최적화 프로그램 및 코드 생성기)입니다. 프로그램을 RISC와 같은 가상 명령어의 중간 비트 코드로 컴파일합니다. (다단계 최적화 시스템이있는 저수준 가상 머신).

컴파일 시간을 최적화하도록 설계되었습니다., 바인딩 시간, 사용자가 정의하려는 프로그래밍 언어의 실행 시간. 원래 C 및 C ++를 컴파일하기 위해 구현되었습니다., LLVM의 언어 불가지론 적 설계 및 프로젝트 성공 다양한 언어를 낳았습니다Objective-C, Fortran, Ada, Haskell, Java 바이트 코드, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas 등을 포함합니다.

생성 된 의사 코드는 JIT 컴파일러를 사용하여 프로그램 실행시 직접 기계 명령어로 변환 할 수 있습니다.

LLVM 9.0의 새로운 주요 기능

LLVM 9.0의 새로운 기능 중 RISC-V 플랫폼에서 실험적 개발 태그를 제거하기위한 지원 찾기, OpenCL에 대한 C ++ 지원.

또 다른 참신함 눈에 띄는 것은 프로그램을 동적으로로드 된 부분으로 나누는 기능입니다. LLD 및 Linux 커널 코드에서 사용되는»asm goto»구성의 구현.

또한 Libc ++가 WASI에 대한 지원과 함께 도착했음을 강조합니다. (WebAssembly System Interface) 및 LLD는 WebAssembly 동적 바인딩에 대한 초기 지원을 도입했습니다. 조립 된 인라인 블록에서 C 코드의 태그로 전환 할 수있는 GCC 특정 표현식»asm goto»의 구현이 추가되었습니다.

이 기능은 x86_64 시스템에서 Clang을 사용하여»CONFIG_JUMP_LABEL = y«모드에서 Linux 커널을 빌드하는 데 필요합니다. 이전 버전에 추가 된 변경 사항을 고려하여 Linux 커널은 이제 x86_64 아키텍처 용 Clang으로 빌드 할 수 있습니다 (이전에는 arm, aarch64, ppc32, ppc64le 및 mips 아키텍처에서만 지원되었습니다.

BTI 지침에 대한 지원이 추가되었습니다. AArch64 아키텍처 용 (지점 대상 표시기) 및 PAC (포인터 인증 코드). MIPS, RISC-V 및 PowerPC 플랫폼에 대한 지원이 크게 향상되었습니다.

또한, Android 및 ChromeOS 프로젝트는 이미 Clang을 사용하여 커널을 빌드하도록 전환했습니다. Google은 실행중인 Linux 시스템의 기본 빌드 플랫폼 커널로 Clang을 테스트하고 있습니다.

앞으로 커널 컴파일 과정에서 다른 구성 요소를 사용할 수 있습니다. LLD, llvm-objcopy, llvm-ar, llvm-nm 및 llvm-objdump를 포함한 LLVM.

실험적인 파티션 기능이 LLD 링커에 추가되어 프로그램을 여러 부분으로 나눌 수 있으며 각 부분은 별도의 ELF 파일에 배치됩니다. 이 기능을 사용하면 필요에 따라 프로세스의 나머지 구성 요소를로드하는 프로그램의 주요 부분을 실행할 수 있습니다 (예를 들어, 내장 PDF 뷰어를 별도의 파일로 선택할 수 있습니다. 사용자가 파일 PDF를 엽니 다).

반면에 백엔드의 수많은 개선 사항도 두드러집니다. X86, AArch64, ARM, SystemZ, MIPS, AMDGPU 및 PowerPC 아키텍처 용.

예를 들어 SVE2 및 MTE (Memory Tagging Extensions) 명령어에 대한 지원이 AArch64 아키텍처에 추가되었으며 Armv8.1-M 아키텍처 및 MVE 아키텍처에 대한 지원이 ARM 백엔드에 추가되었습니다.

AMDGPU의 경우 GFX10 아키텍처에 대한 지원이 추가되었습니다. (Navi), 기본값은 함수를 호출하고 활성화 된 결합 DPP (Data Primitives-Parallel)를 전달하도록 활성화됩니다.

LLDB 디버거는 트레이스의 색상 강조를 거꾸로 도입했습니다. DWARF4 debug_types 및 DWARF5 debug_info 블록에 대한 지원이 추가되었습니다.

llvm-objcopy 및 llvm-strip 유틸리티는 COFF 형식 실행 파일 및 개체에 대한 지원을 추가했습니다.

RISC-V 아키텍처의 백엔드가 안정화되었습니다., 이는 더 이상 실험용으로 배치되지 않으며 기본적으로 빌드됩니다. MAFDC 확장을 사용하여 RV32I 및 RV64I 명령어 세트 변형에 대한 코드 생성을 완벽하게 지원합니다.

출처 : http://releases.llvm.org/


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.