.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "LLC" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" llc \- کامپایلر ایستای LLVM .SH "خلاصه دستور (SYNOPSIS)" .sp \fBllc\fP [\fIoptions\fP] [\fIfilename\fP] .SH "توضیحات (DESCRIPTION)" .sp دستور \fBllc\fP ورودی‌های منبع LLVM را برای یک معماری مشخص به زبان اسمبلی کامپایل می‌کند. سپس خروجی زبان اسمبلی می‌تواند از طریق یک اسمبلر و پیونددهندهٔ بومی برای تولید یک فایل اجرایی بومی مورد استفاده قرار گیرد. .sp انتخاب معماری برای کد اسمبلی خروجی به‌طور خودکار از روی فایل ورودی تعیین می‌شود، مگر اینکه گزینهٔ \fB\-march\fP برای لغو مقدار پیش‌فرض به کار گرفته شود. .SH "گزینه‌ها (OPTIONS)" .sp اگر \fBfilename\fP برابر با \(dq\fB\-\fP\(dq باشد یا وارد نشود، \fBllc\fP از ورودی استاندارد می‌خواند. در غیر این صورت، از \fBfilename\fP خوانده خواهد شد. ورودی‌ها می‌توانند در قالب زبان اسمبلی LLVM (\fB\&.ll\fP) یا قالب بیت‌کد LLVM (\fB\&.bc\fP) باشند. .sp در صورتی که گزینهٔ \fB\-o\fP مشخص نشده باشد و ورودی از ورودی استاندارد دریافت شود، \fBllc\fP خروجی خود را به خروجی استاندارد ارسال خواهد کرد. اگر گزینهٔ \fB\-o\fP مقدار \(dq\fB\-\fP\(dq را مشخص کند، خروجی نیز به خروجی استاندارد ارسال می‌شود. .sp اگر هیچ گزینهٔ \fB\-o\fP مشخص نشده باشد و فایلی به غیر از \(dq\fB\-\fP\(dq به عنوان ورودی داده شود، \fBllc\fP نام فایل خروجی را با در نظر گرفتن نام فایل ورودی، حذف هرگونه پسوند موجود \fB\&.bc\fP و افزودن پسوند \fB\&.s\fP ایجاد می‌کند. .sp سایر گزینه‌های \fBllc\fP در زیر شرح داده شده‌اند. .SS گزینه‌های کاربر نهایی (End\-user Options) .INDENT 0.0 .TP .B \-help چاپ خلاصه‌ای از گزینه‌های خط فرمان. .UNINDENT .INDENT 0.0 .TP .B \-M ارسال گزینه‌های مخصوص هدف برای InstPrinter. به گزینهٔ \fB\-M\fP در \fBllvm\-objdump(1) \%\fP مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-o استفاده از \fB\fP به عنوان نام فایل خروجی. برای جزئیات بیشتر به خلاصهٔ بالا مراجعه کنید. .UNINDENT .INDENT 0.0 .TP .B \-O=uint تولید کد در سطوح بهینه‌سازی مختلف. این سطوح متناظر با سطوح بهینه‌سازی \fB\-O0\fP، \fB\-O1\fP، \fB\-O2\fP و \fB\-O3\fP هستند که توسط \fBclang\fP استفاده می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-mtriple= جایگزینی target triple مشخص‌شده در فایل ورودی با رشتهٔ تعیین‌شده. .UNINDENT .INDENT 0.0 .TP .B \-march= تعیین معماری مورد نظر برای تولید کد اسمبلی، با اولویت بر هدف کدگذاری‌شده در فایل ورودی. برای مشاهدهٔ فهرستی از معماری‌های معتبر، خروجی \fBllc \-help\fP را ببینید. به‌طور پیش‌فرض این مقدار از target triple استنباط شده یا به‌طور خودکار روی معماری جاری تشخیص داده می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-mcpu= مشخص کردن یک تراشهٔ خاص در معماری جاری برای تولید کد. به‌طور پیش‌فرض این مقدار از target triple استنباط شده و به‌صورت خودکار روی معماری جاری تشخیص داده می‌شود. برای مشاهدهٔ فهرستی از پردازنده‌های دردسترس، استفاده کنید از: .INDENT 7.0 .INDENT 3.5 .sp .EX llvm\-as < /dev/null | llc \-march=xyz \-mcpu=help .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-filetype= تعیین نوع خروجی که \fBllc\fP باید تولید کند. گزینه‌ها عبارتند از: \fBasm\fP برای اسمبلی متنی (\fB\(aq.s\(aq\fP)، \fBobj\fP برای فایل‌های شیء بومی (\fB\(aq.o\(aq\fP) و \fBnull\fP برای عدم تولید خروجی (جهت آزمایش کارایی). .sp توجه داشته باشید که همهٔ اهداف از تمامی گزینه‌ها پشتیبانی نمی‌کنند. .UNINDENT .INDENT 0.0 .TP .B \-mattr=a1,+a2,\-a3,... بازنویسی یا کنترل ویژگی‌های خاص هدف، مانند فعال یا غیرفعال بودن عملیات SIMD. مجموعه ویژگی‌های پیش‌فرض توسط پردازندهٔ فعلی تنظیم می‌شود. برای دیدن فهرستی از ویژگی‌های دردسترس، استفاده کنید از: .INDENT 7.0 .INDENT 3.5 .sp .EX llvm\-as < /dev/null | llc \-march=xyz \-mattr=help .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-frame\-pointer مشخص کردن اثر بهینه‌سازی حذف اشاره‌گر فریم (all، non\-leaf، none). .UNINDENT .INDENT 0.0 .TP .B \-\-disable\-excess\-fp\-precision غیرفعال کردن بهینه‌سازی‌هایی که ممکن است دقت اضافی برای ممیز شناور تولید کنند. توجه داشته باشید که این گزینه می‌تواند سرعت اجرای کد را در برخی سیستم‌ها (مانند X86) به شدت کاهش دهد. .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-no\-infs\-fp\-math فعال‌سازی بهینه‌سازی‌هایی که نبود مقادیر بی‌نهایت (Inf) را فرض می‌کنند. .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-no\-nans\-fp\-math فعال‌سازی بهینه‌سازی‌هایی که نبود مقادیر ناعدد (NAN) را فرض می‌کنند. .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-no\-signed\-zeros\-fp\-math فعال‌سازی بهینه‌سازی‌های ریاضی ممیز شناور که علامت صفر (0) را بی‌اهمیت فرض می‌کنند. .UNINDENT .INDENT 0.0 .TP .B \-\-enable\-no\-trapping\-fp\-math فعال‌سازی تنظیم صفت ساخت استثناهای ممیز شناور جهت عدم استفاده از استثناها. .UNINDENT .INDENT 0.0 .TP .B \-\-stats چاپ آمارهای ثبت‌شده توسط مراحل (passes) تولید کد. .UNINDENT .INDENT 0.0 .TP .B \-\-save\-stats, \-\-save\-stats=cwd, \-\-save\-stats=obj ذخیرهٔ آمارهای LLVM در یک فایل در دایرکتوری جاری (\fB\-\-save\-stats\fP/\(dq\-\-save\-stats=cwd\(dq) یا دایرکتوری فایل خروجی (\(dq\-\-save\-stats=obj\(dq) در قالب JSON. .UNINDENT .INDENT 0.0 .TP .B \-\-time\-passes ثبت مدت زمان مورد نیاز برای هر مرحله و چاپ گزارش در خطای استاندارد. .UNINDENT .INDENT 0.0 .TP .B \-\-load= بارگذاری پویای \fBdso_path\fP (مسیری به یک شیء مشترک پویا) که یک هدف LLVM را پیاده‌سازی می‌کند. این کار امکان استفاده از نام هدف را با گزینهٔ \fB\-march\fP فراهم می‌سازد تا بتوان برای آن هدف کد تولید کرد. .UNINDENT .INDENT 0.0 .TP .B \-meabi=[default|gnu|4|5] تعیین نسخهٔ EABI جهت مطابقت. نسخه‌های معتبر EABI عبارتند از \fIgnu\fP، \fI4\fP و \fI5\fP\&. مقدار پیش‌فرض (\fIdefault\fP) به triple بستگی دارد. .UNINDENT .INDENT 0.0 .TP .B \-stack\-size\-section تولید بخش .stack_sizes که حاوی فراداده‌های اندازهٔ پشته است. این بخش شامل آرایه‌ای از جفت‌های مقادیر نماد تابع (اندازهٔ اشاره‌گر) و اندازه‌های پشته (LEB128 بدون علامت) است. مقادیر اندازهٔ پشته تنها شامل فضای تخصیص‌یافته در مقدمهٔ تابع (prologue) هستند. توابعی با تخصیص پشتهٔ پویا در این بخش گنجانده نمی‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-remarks\-section تولید بخش __remarks (در MachO) که حاوی فراداده‌های مربوط به هشدارهای تشخیصی (remark diagnostics) است. .UNINDENT .SS گزینه‌های تنظیم/پیکربندی (Tuning/Configuration Options) .INDENT 0.0 .TP .B \-\-print\-after\-isel چاپ کد ماشین تولیدشده پس از انتخاب دستورالعمل (instruction selection) (کاربردی برای اشکال‌زدایی). .UNINDENT .INDENT 0.0 .TP .B \-\-regalloc= مشخص کردن تخصیص‌دهندهٔ ثبات (register allocator) برای استفاده. تخصیص‌دهنده‌های معتبر ثبات عبارتند از: .sp \fIbasic\fP .INDENT 7.0 .INDENT 3.5 تخصیص‌دهندهٔ پایهٔ ثبات. .UNINDENT .UNINDENT .sp \fIfast\fP .INDENT 7.0 .INDENT 3.5 تخصیص‌دهندهٔ سریع ثبات. این گزینه پیش‌فرض کدهای بهینه‌سازی‌نشده است. .UNINDENT .UNINDENT .sp \fIgreedy\fP .INDENT 7.0 .INDENT 3.5 تخصیص‌دهندهٔ حریصانهٔ ثبات. این گزینه پیش‌فرض کدهای بهینه‌سازی‌شده است. .UNINDENT .UNINDENT .sp \fIpbqp\fP .INDENT 7.0 .INDENT 3.5 تخصیص‌دهندهٔ ثبات بر پایهٔ \(aqPartitioned Boolean Quadratic Programming\(aq. .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-spiller= مشخص کردن سرریزکننده (spiller) برای تخصیص‌دهنده‌های ثباتی که از آن پشتیبانی می‌کنند. در حال حاضر این گزینه فقط توسط تخصیص‌دهندهٔ ثبات پیمایش خطی (linear scan) استفاده می‌شود. مقدار پیش‌فرض \fBspiller\fP برابر با \fIlocal\fP است. مقادیر معتبر عبارتند از: .sp \fIsimple\fP .INDENT 7.0 .INDENT 3.5 سرریزکنندهٔ ساده .UNINDENT .UNINDENT .sp \fIlocal\fP .INDENT 7.0 .INDENT 3.5 سرریزکنندهٔ محلی .UNINDENT .UNINDENT .UNINDENT .SS گزینه‌های ویژهٔ Intel IA\-32 (Intel IA\-32\-specific Options) .INDENT 0.0 .TP .B \-\-x86\-asm\-syntax=[att|intel] مشخص کردن خروجی کد اسمبلی بر اساس ساختار نحوی AT&T (پیش‌فرض) یا ساختار نحوی Intel. .UNINDENT .SH "وضعیت خروج (EXIT STATUS)" .sp در صورت موفقیت، \fBllc\fP با مقدار 0 خارج می‌شود. در غیر این صورت، اگر خطایی رخ دهد، با یک مقدار غیرصفر خارج خواهد شد. .SH "همچنین ببینید (SEE ALSO)" .sp \fBlli(1) \%\fP .SH "نویسندگان (AUTHORS)" نگه‌داری‌شده توسط تیم LLVM (). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026، پروژهٔ LLVM .\" End of generated man page.