GCC 11.1은 이미 출시되었으며 가장 중요한 뉴스 및 변경 사항입니다.

XNUMX 년의 개발 끝에 GCC 11.1 컴파일러 스위트 새 버전 출시, 새로운 GCC 11.x 브랜치의 첫 번째 중요한 릴리스입니다. 새로운 버전 번호 지정 체계에 따라 개발 중에 버전 11.0이 사용되었으며 GCC 11.1이 출시되기 직전에 GCC 12.0의 분기가 이미 분기되어 GCC 12.1의 다음 주 버전을 형성했습니다.

GCC 11.1은 기본 디버그 파일 형식 DWARF 5 로의 전환에서 두드러집니다., C ++ 17 표준 ( "-std = gnu ++ 17")의 기본 포함, C ++ 20 표준과의 호환성 대폭 개선, C ++ 23에 대한 실험적 지원, 향후 표준 관련 개선 C 언어 (C2x), 새로운 성능 최적화.

GCC 11.1 주요 새로운 기능

C ++ 언어의 기본 모드가 C ++ 17 표준을 사용하도록 변경되었습니다., 이전에 제안 된 C ++ 14 대신. 다른 템플릿을 매개 변수로 사용하는 템플릿을 처리 할 때 새로운 C ++ 17 동작을 선택적으로 비활성화 할 수 있습니다 (-fno-new-ttp-matching).

하드웨어 가속에 대한 지원 추가 해제 된 메모리 영역에 액세스하는 사실, 할당 된 버퍼의 한계를 초과하는 사실, 메모리 작업시 다른 유형의 오류를 확인할 수있는 AddressSanitizer 도구의 하드웨어 가속은 현재 AArch64 아키텍처에서만 사용할 수 있으며 Linux 커널을 컴파일 할 때 사용하는 데 중점을 둡니다.

제시되는 또 다른 참신함은 새로운 IPA-modref 패스가 추가됨에 따라 절차 간의 최적화 및 개선 (-fipa-modref)는 함수 호출의 부작용을 추적하고 분석 정확도를 개선합니다. 또한 IPA-ICF 패스 구현 개선 (-fipa-icf)는 컴파일 메모리 소비를 줄이고 동일한 코드 블록이 병합되는 통합 함수의 수를 증가시킵니다.

El 프로필 기반 최적화 엔진 (PGO), 개선 된 "-fprofile-values"모드 간접 호출에 대한 더 많은 매개 변수를 추적합니다.

또한 OpenMP 5.0 표준의 지속적인 구현이 강조됩니다. (개방형 다중 처리), 할당 지시문에 대한 초기 지원 및 비 균일 루프 사용 기능 추가 OpenMP 빌드에서. 이제 OMP_TARGET_OFFLOAD 환경 변수가 지원됩니다.

GPU 및 NVIDIA PTX와 같은 특수 프로세서로 작업을 오프로드하는 도구를 정의하는 C, C ++ 및 Fortran 언어에 대해 제공되는 OpenACC 2.6 병렬 프로그래밍 사양의 구현이 개선되었습니다.

C 계열의 언어에 대해 새 속성 "no_stack_protector"가 구현되었습니다. 스택 보호를 사용하지 않아야하는 기능을 표시하도록 설계되었습니다 ( "-fstack-protector"). "malloc"속성은 메모리 할당 및 해제를위한 호출 쌍 식별 지원으로 확장되었습니다., 정적 파서에서 일반적인 메모리 오류 (메모리 누수, 해제 후 사용, 해제 함수에 대한 이중 호출 등) 및 컴파일러 경고 "-Wmismatched-dealloc", "-Wmismatched- new-delete"and "를 감지하는 데 사용됩니다. -Wfree-nonheap-object "일관되지 않은 할당 해제 및 할당 해제 작업을보고합니다.

디버깅 정보를 생성 할 때 기본적으로 DWARF 5 형식이 사용되므로 이전 버전에 비해 25 % 더 압축 된 디버깅 데이터를 생성 할 수 있습니다. 완전한 DWARF 5 지원은 binutils 버전 2.35.2 이상이 필요합니다.

향상된 ThreadSanitizer 모드 기능 (-fsanitize = thread), 예부터e는 대체 런타임 및 환경에 대한 지원을 추가합니다. Linux 커널 내에서 경합 상태를 동적으로 감지하기위한 KCSAN (Kernel Concurrency Sanitizer) 디버깅 도구를 지원합니다. 새로운 옵션 "–param tsan-distinguish-volatile"및 "–param tsan-instrument-func-entry-exit"가 추가되었습니다.

벡터 라이저는 기능의 모든 내용에 대한 설명과 CFG (제어 순서도)의 이전 블록에 대한 교차 및 참조와 관련된 기능의 추가 처리를 제공합니다.

옵티 마이저에는 일련의 조건부 연산을 동일한 변수가 비교되는 변경 표현식으로 변환하는 기능이 있습니다. 앞으로 변경 표현식은 비트 테스트 명령어를 사용하여 인코딩 될 수 있습니다 (이 변환을 제어하기 위해 "-fbit-tests"옵션이 추가됨).

C ++의 경우 가상 함수 "consteval virtual", 객체의 수명주기를 종료하는 의사 파괴자, 열거 클래스 사용 및 계산을 포함하여 C ++ 20 표준에서 제안 된 변경 및 혁신의 일부가 구현되었습니다. "new"표현식의 배열 크기.

그것에 대해 더 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크. 


코멘트를 남겨주세요

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

*

*

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