GCC 11.1 قبلاً منتشر شده است ، این مهمترین اخبار و تغییرات آن است

پس از یک سال توسعه ، نسخه کامپایلر 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 که قبلاً پیشنهاد شده بود. هنگام پردازش الگوهایی که از الگوهای دیگر به عنوان یک پارامتر استفاده می کنند (-fno-new-ttp-matching) می توان رفتار جدید C ++ 17 را غیرفعال کرد.

پشتیبانی از شتاب سخت افزاری اضافه شده است از ابزار AddressSanitizer ، که به شما امکان می دهد حقایق دسترسی به مناطق حافظه آزاد شده ، بیش از حد بافر اختصاص یافته و برخی از انواع دیگر خطاها را هنگام کار با حافظه تعیین کنید. در حال حاضر ، شتاب سخت افزاری فقط برای معماری AArch64 در دسترس است و هنگام استفاده از هسته لینوکس ، استفاده از آن تمرکز دارد.

یکی دیگر از اخبار ارائه شده است بهینه سازی و بهبود بین رویه ها ، همانطور که پاس جدید IPA-modref اضافه شد (-fipa-modref) برای ردیابی عوارض جانبی در تماس های عملکردی و بهبود دقت تجزیه و تحلیل. علاوه بر این نیز اجرای بهتر مجوز IPA-ICF (-fipa-icf) ، که باعث کاهش مصرف حافظه تلفیقی و افزایش تعداد توابع واحد می شود که بلاک های کد یکسان برای آنها ادغام می شوند.

El موتور بهینه سازی پروفایل محور (PGO) ، حالت "-fprofile-values" را بهبود بخشید با پیگیری پارامترهای بیشتر برای تماس های غیرمستقیم.

همچنین ادامه اجرای استاندارد OpenMP 5.0 برجسته شده است (باز کردن چند پردازش) ، که در آن پشتیبانی اولیه برای دستورالعمل انتساب و توانایی استفاده از حلقه های غیر یکنواخت اضافه شده است در ساخت OpenMP. متغیر محیط OMP_TARGET_OFFLOAD اکنون پشتیبانی می شود.

اجرای مشخصات برنامه نویسی موازی OpenACC 2.6 ارائه شده برای زبانهای C ، C ++ و Fortran ، که ابزارهایی را برای عملیات بارگیری به پردازنده های گرافیکی و پردازنده های تخصصی مانند NVIDIA PTX تعریف می کند ، بهبود یافته است.

برای زبانهای خانواده C ، ویژگی جدید "no_stack_protector" پیاده سازی شده است ، طراحی شده برای علامت گذاری توابع که محافظت از پشته در آنها نباید فعال باشد ("-fstack-protector"). ویژگی "malloc" با پشتیبانی از شناسایی جفت تماس برای تخصیص و آزاد کردن حافظه گسترش یافته است، که در تجزیه کننده ایستا برای تشخیص خطاهای معمولی حافظه (نشت حافظه ، استفاده پس از رایگان ، دوبار تماس با عملکرد آزاد و غیره) و هشدارهای کامپایلر "-Wmismatched-dealloc" ، "-Wmismatched- new-delete" و " "شیf آزاد-غیر-گرم" گزارش عملیات جابجایی و جابجایی ناسازگار.

هنگام تولید اطلاعات اشکال زدایی ، به طور پیش فرض از قالب DWARF 5 استفاده می شود ، که در مقایسه با نسخه های قبلی ، 25٪ داده اشکال زدایی جمع و جورتر تولید می شود. پشتیبانی کامل از DWARF 5 حداقل به نسخه 2.35.2 به دوتایی نیاز دارد.

قابلیت های پیشرفته ThreadSanitizer (-fsanitize = نخ) ، از آنجا که بلهو پشتیبانی از زمان کار و محیط های جایگزین را اضافه می کند ، و همچنین پشتیبانی از ابزار رفع اشکال Kernel Concurrency Sanitizer (KCSAN) برای شناسایی پویا شرایط مسابقه در هسته لینوکس. گزینه های جدید "–param tsan-remove-volatile" و "-param tsan-instrument-func-entry-exit" اضافه شده اند.

بردار کننده حسابداری از تمام محتوای عملکرد و پردازش اضافی قابلیت های مرتبط با تقاطع ها و ارجاع به بلوک های قبلی در نمودار جریان کنترل (CFG) را فراهم می کند.

بهینه ساز توانایی تبدیل یک سری عملیات شرطی را به عبارت تغییر دارد که در آن همان متغیر مقایسه می شود. در آینده ، می توان عبارت تغییر را با استفاده از دستورالعمل های آزمایش بیت کد کرد (برای کنترل این تبدیل ، گزینه "-fbit-test" اضافه شده است).

برای C ++ ، بخشی از تغییرات و نوآوری های پیشنهادی در استاندارد C ++ 20 اجرا شده است ، از جمله توابع مجازی "مجازی مجازی" ، نابودگرهای شبه برای پایان دادن به چرخه زندگی اشیا ، استفاده از کلاس enum و محاسبه اندازه آرایه در عبارت "جدید".

اگر می خواهید در این باره بیشتر بدانید، می توانید جزئیات را در اینجا بررسی کنید لینک زیر 


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.