بالاترین سوالات
زمانبندی
چت
دیدگاه

کامپایلر سی پلاس پلاس اینتل

از ویکی‌پدیا، دانشنامه آزاد

Remove ads

کامپایلر سی++ اینتل، همچنین به عنوان آی‌سی‌سی یا آی‌سی‌ال شناخته می‌شود، گروهی از کامپایلرهای سی و سی پلاس پلاس از اینتل است که برای ویندوز، مک، لینوکس، فری‌بی‌اس‌دی[۴] و دستگاه‌های اندروید مبتنی بر اینتل در دسترس است.

اطلاعات اجمالی توسعه‌دهنده(ها), انتشار پایدار ...
Remove ads
اطلاعات اجمالی توسعه‌دهنده(ها), انتشار پایدار ...
Remove ads

بررسی اجمالی

خلاصه
دیدگاه

کامپایلرها کدهای بهینه شده برای معماری آی‌ای-۳۲ و اینتل ۶۴ و کدهای غیربهینه شده برای پردازنده‌های غیر اینتل اما سازگار مانند پردازنده‌های خاص ای‌ام‌دی تولید می‌کنند. نسخه ویژه ای از کامپایلر (۱۱٫۱) برای توسعه برنامه‌های مبتنی بر Linux برای پردازنده‌های (ایتانیوم IA-64 (۲ در دسترس است.

کامپایلر ۱۴٫۰ پشتیبانی از دستگاه‌های اندروید مبتنی بر اینتل و بهینه‌سازی شده و دستورالعمل‌های SSE Family را برای بهبود عملکرد اضافه کرده‌است. نسخه ۱۳٫۰ پشتیبانی از پردازنده زئون فای اینتل را اضافه کرد. این پشتیبانی از بردارسازی خودکار، که می‌تواند دستورالعمل‌های اس‌اس‌ایی۲، اس‌اس‌ایی۳، اس‌اس‌ایی، اس‌اس‌اس‌ئی۳، اس‌اس‌ایی۴، ای‌وی‌ایکس و AVX2 SIMD و نسخه سامانه نهفته برای Intel MMX و MMX 2 را تولید کند، ادامه دارد.[۵] استفاده از چنین دستورالعملی از طریق کامپایلر می‌تواند منجر به بهبود عملکرد برنامه در برخی از برنامه‌ها با معماری آی‌ای-۳۲ و اینتل ۶۴ شود، در مقایسه با برنامه‌های ساخته شده با کامپایلرها که از این دستورالعمل‌ها پشتیبانی نمی‌کنند.

کامپایلرهای اینتل از کیلک پلاس پشتیبانی می‌کنند (که در نسخه ۱۹٫۱ حذف شده‌است)، این یک توانایی برای نوشتن کدهای برداری و موازی است که می‌تواند در پردازنده‌های IA-32 و Intel 64 استفاده شود یا می‌تواند در پردازنده‌های زئون فای بارگیری شود. آن‌ها همچنین پشتیبانی از اپن ام‌پی ۴، چند پردازی متقارن، موازی سازی خودکار و پارالایزاسیون خودکار هدایت شده (GAP) را ادامه می‌دهند. با قابلیت افزودنی کلاستر اوپن‌ام‌پی، کامپایلرها همچنین می‌توانند به‌طور خودکار تماس‌های رابط انتقال پیام برای چندپردازشی حافظه توزیع شده از بخشنامه‌های اوپن‌ام‌پی را ایجاد کنند.

اینتل سی++ با ویژوال سی++ در ویندوز سازگار است و در مایکروسافت ویژوال استودیو ادغام می‌شود. در لینوکس و Mac، با GNU Compiler

Collection و زنجیره ابزار گنو سازگار است. کامپایلر سی++ اینتل برای اندروید در ویندوز، OS X یا لینوکس میزبانی می‌شود و با اندروید اِن‌دی‌کی، از جمله جیی‌سی‌سی و اکلیپس(Eclipse IDE) سازگار است. کامپایلرهای اینتل به دلیل عملکردی که می‌توانند با اندازه‌گیری توسط معیارهایی مانند معیارهای SPEC CPU اندازه‌گیری کنند، شناخته شده‌اند.

Remove ads

بهینه‌سازی‌ها

خلاصه
دیدگاه

کامپایلرهای اینتل با استفاده از پردازنده‌هایی که از معماری‌های اینتل پشتیبانی می‌کنند، برای سیستم‌های رایانه ای بهینه می‌شوند. آنها برای به حداقل رساندن غرفه‌ها (stalls) و تولید کدی طراحی شده‌اند که در کمترین تعداد چرخه ممکن اجرا می‌شود. کامپایلر سی++ اینتل از سه تکنیک سطح بالا جداگانه برای بهینه‌سازی برنامه کامپایل شده پشتیبانی می‌کند: ببهینه سازی درون تابع (آی‌پی‌او)، بهینه‌سازی هدایت شده با پروفایل (پی‌جیی‌او) و بهینه‌سازی‌های سطح بالا (اچ‌ال‌او). کامپایلر سی++ اینتل در محصولات Parallel Studio XE همچنین از ابزارها، تکنیک‌ها و پسوند زبانی برای افزودن و حفظ موازی سازی برنامه‌ها در پردازنده‌های IA-32 و Intel 64 پشتیبانی می‌کند و امکان پردازش پردازنده‌های زئون فای اینتل را فراهم می‌کند.

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

بهینه‌سازی‌های سطح بالا بهینه‌سازی‌های انجام شده روی نسخه ای از برنامه است که نگاه نزدیک تری به کد منبع دارد. این شامل عوض شدن حلقه، همجوشی حلقه، شکافت حلقه، باز کردن حلقه، پیش تنظیم داده‌ها و موارد دیگر است.[۶]

بهینه‌سازی میان فرآیندی، کامپایلرهای معمولی را بهنه سازی می‌کند اما با استفاده از دامنه گسترده‌تر که ممکن است شامل چندین روش، چندین پرونده یا کل برنامه باشد.[۷]

دیوید مونیاوکس از کامپایلر اینتل انتقاد کرده‌است که به‌طور پیش فرض، بهینه‌سازی‌های نقطه شناور را اعمال می‌کند که توسط استاندارد سی مجاز نیست و به پرچم‌های خاصی با کامپایلرهای دیگر مانند جی‌سی‌سی نیاز دارند.[۸]

Remove ads

معماری

شرح بسته‌بندی

به جز کامپایلر ++Intel Bi-Endian C، کامپایلرهای ++Intel C به صورت مستقل در دسترس نیستند. آنها در مجموعه‌ها موجود هستند:

این مجموعه‌ها شامل ابزارهای ساخت دیگر مانند کتابخانه‌ها و ابزارهایی برای رشته و تجزیه و تحلیل عملکرد هستند.

Remove ads

تاریخچه از سال ۲۰۰۳

خلاصه
دیدگاه
اطلاعات بیشتر نسخه کامپایلر, تاریخ انتشار ...
Remove ads

پرچم و راهنما

مستندات را می‌توان در سایت Intel Documentation Technical Software یافت.

اطلاعات بیشتر ویندوز, لینوکس، مک و فری‌بی‌اس‌دی ...
Remove ads

اشکال زدایی

خلاصه
دیدگاه

کامپایلر اینتل اطلاعات اشکال زدایی استاندارد برای اشکال زداهای رایج (مانند DWARF 2 در لینوکس، مشابه gdb و COFF برای ویندوز) را ارائه می‌دهد. پرچم‌هایی که با اطلاعات اشکال زدایی کامپایل می‌شوند Zi/ در ویندوز و -g در لینوکس هستند. اشکال زدایی در ویندوز با استفاده از خطایاب ویژوال استودیو(VS) و در لینوکس با استفاده از gdb انجام می‌شود.

در حالی که کامپایلر اینتل می‌تواند یک خروجی رخ‌نمانگاری سازگار با gprof ایجاد کند، اینتل همچنین یک پروفایل آماری سطح هسته و سیستم را به نام Intel VTune Profiler فراهم می‌کند. VTune را می‌توان از طریق خط فرمان یا از طریق GUI موجود در لینوکس یا ویندوز استفاده کرد. همچنین می‌تواند در ویژوال استودیو در ویندوز یا اکلیپس (Eclipse) در لینوکس ادغام شود). علاوه بر ثبت کننده (پروفایلر) VTune , Intel Advisor نیز وجود دارد که در زمینه بهینه‌سازی برداری، مدل‌سازی بارگیری، طراحی نمودار جریان و ابزارهای طراحی رشته و نمونه سازی تخصص دارد.

اینتل همچنین ابزاری را برای شناسایی خطای حافظه و نخ با نام Intel Inspector XE ارائه می‌دهد. در مورد خطاهای حافظه، به تشخیص نشت حافظه، خرابی حافظه، تخصیص / عدم تخصیص تطابق API و استفاده ناسازگار از API حافظه کمک می‌کند. با توجه به خطاهای نخ (threading)، این امر به شناسایی انواع مختلف داده (heap و stack)، بن‌بست‌ها و خطاهای همگام سازی API کمک می‌کند.

Remove ads

منابع

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads