.\" 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 "LLI" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" lli \- اجرای مستقیم برنامه‌ها از بیت‌کد LLVM .SH "خلاصه دستور (SYNOPSIS)" .sp \fBlli\fP [\fIoptions\fP] [\fIfilename\fP] [\fIprogram args\fP] .SH "توضیحات (DESCRIPTION)" .sp \fBlli\fP برنامه‌ها را مستقیماً در قالب بیت‌کد LLVM اجرا می‌کند. این ابزار برنامه‌ای در قالب بیت‌کد LLVM را دریافت کرده و آن را با استفاده از یک کامپایلر درجا (just\-in\-time) یا یک مفسر (interpreter) اجرا می‌نماید. .sp \fBlli\fP یک شبیه‌ساز \fIنیست\fP. این ابزار IR معماری‌های متفاوت را اجرا نمی‌کند و تنها می‌تواند برای معماری میزبان عمل تفسیر (یا کامپایل JIT) را انجام دهد. .sp کامپایلر JIT همان آرگومان‌های ابزارهای دیگر مانند \fBllc\fP را می‌پذیرد، اما این آرگومان‌ها لزوماً برای مفسر کار نمی‌کنند. .sp اگر \fIfilename\fP مشخص نشده باشد، \fBlli\fP بیت‌کد LLVM برنامه را از ورودی استاندارد می‌خواند. .sp آرگومان‌های اختیاری \fIargs\fP که در خط فرمان مشخص می‌شوند، به عنوان آرگومان به برنامه ارسال می‌گردند. .SH "گزینه‌های عمومی (GENERAL OPTIONS)" .INDENT 0.0 .TP .B \-fake\-argv0=executable مقدار \fBargv[0]\fP ارسال‌شده به برنامهٔ در حال اجرا را بازنویسی می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-force\-interpreter={false,true} اگر روی true تنظیم شود، حتی در صورت در دسترس بودن کامپایلر درجا برای این معماری، از مفسر استفاده می‌کند. پیش‌فرض false است. .UNINDENT .INDENT 0.0 .TP .B \-help خلاصه‌ای از گزینه‌های خط فرمان را چاپ می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-load=pluginfilename باعث می‌شود \fBlli\fP افزونهٔ (shared object) مشخص‌شده با \fIpluginfilename\fP را بارگذاری کرده و از آن برای بهینه‌سازی استفاده کند. .UNINDENT .INDENT 0.0 .TP .B \-stats آمارهای مربوط به گذرهای (passes) تولید کد را چاپ می‌کند. در حال حاضر، این گزینه تنها برای کامپایلر درجا معنی‌دار است. .UNINDENT .INDENT 0.0 .TP .B \-time\-passes مدت زمان لازم برای هر گذر تولید کد را ثبت کرده و آن را در خروجی خطای استاندارد چاپ می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-version نسخهٔ \fBlli\fP را چاپ کرده و بدون انجام هیچ کار دیگری خارج می‌شود. .UNINDENT .SH "گزینه‌های هدف (TARGET OPTIONS)" .INDENT 0.0 .TP .B \-mtriple=target triple سه‌گانهٔ هدف (target triple) مشخص‌شده در فایل بیت‌کد ورودی را با رشتهٔ مشخص‌شده بازنویسی می‌کند. اگر معماری‌ای را انتخاب کنید که با سیستم فعلی سازگار نباشد، این عمل ممکن است منجر به فروپاشی برنامه (crash) شود. .UNINDENT .INDENT 0.0 .TP .B \-march=arch معماری مورد نظر برای تولید اسمبلی را مشخص می‌کند و هدف تعیین‌شده در فایل بیت‌کد را نادیده می‌گیرد. برای دیدن فهرستی از معماری‌های معتبر خروجی \fBllc \-help\fP را مشاهده کنید. به‌طور پیش‌فرض، این مقدار از سه‌گانهٔ هدف استنباط شده یا به‌صورت خودکار بر اساس معماری فعلی شناسایی می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-mcpu=cpuname تراشهٔ خاصی در معماری فعلی را برای تولید کد مشخص می‌کند. به‌طور پیش‌فرض این مقدار از سه‌گانهٔ هدف استنباط شده و به‌صورت خودکار بر اساس معماری فعلی شناسایی می‌شود. برای فهرستی از پردازنده‌های در دسترس، از دستور زیر استفاده کنید: \fBllvm\-as < /dev/null | llc \-march=xyz \-mcpu=help\fP .UNINDENT .INDENT 0.0 .TP .B \-mattr=a1,+a2,\-a3,... ویژگی‌های خاصی از هدف را بازنویسی یا کنترل می‌کند؛ مانند فعال یا غیرفعال بودن عملیات SIMD. مجموعه پیش‌فرض ویژگی‌ها توسط پردازندهٔ فعلی تعیین می‌شود. برای فهرستی از ویژگی‌های موجود، از دستور زیر استفاده کنید: \fBllvm\-as < /dev/null | llc \-march=xyz \-mattr=help\fP .UNINDENT .SH "گزینه‌های ممیز شناور (FLOATING POINT OPTIONS)" .INDENT 0.0 .TP .B \-disable\-excess\-fp\-precision بهینه‌سازی‌هایی که ممکن است دقت ممیز شناور را افزایش دهند، غیرفعال می‌کند. .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 \-soft\-float باعث می‌شود \fBlli\fP به‌جای دستورالعمل‌های سخت‌افزاری معادل، فراخوانی‌های کتابخانه‌ای ممیز شناور نرم‌افزاری تولید کند. .UNINDENT .SH "گزینه‌های تولید کد (CODE GENERATION OPTIONS)" .INDENT 0.0 .TP .B \-code\-model=model مدل کد را از موارد زیر انتخاب می‌کند: .INDENT 7.0 .INDENT 3.5 .sp .EX default: Target default code model tiny: Tiny code model small: Small code model kernel: Kernel code model medium: Medium code model large: Large code model .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-disable\-post\-RA\-scheduler زمان‌بندی پس از تخصیص ثبات را غیرفعال می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-disable\-spill\-fusing ادغام کد سرریز (spill code) در دستورالعمل‌ها را غیرفعال می‌کند. .UNINDENT .INDENT 0.0 .TP .B \-jit\-enable\-eh مدیریت استثناها در کامپایلر درجا فعال می‌شود. .UNINDENT .INDENT 0.0 .TP .B \-join\-liveintervals ادغام رونوشت‌ها (پیش‌فرض=true). .UNINDENT .INDENT 0.0 .TP .B \-nozero\-initialized\-in\-bss نمادهای مقداردهی‌شده با صفر را در بخش BSS قرار نمی‌دهد. .UNINDENT .INDENT 0.0 .TP .B \-pre\-RA\-sched=scheduler زمان‌بندهای دستورالعمل موجود (پیش از تخصیص ثبات): .INDENT 7.0 .INDENT 3.5 .sp .EX =default: Best scheduler for the target =none: No scheduling: breadth first sequencing =simple: Simple two pass scheduling: minimize critical path and maximize processor utilization =simple\-noitin: Simple two pass scheduling: Same as simple except using generic latency =list\-burr: Bottom\-up register reduction list scheduling =list\-tdrr: Top\-down register reduction list scheduling =list\-td: Top\-down list scheduler .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-regalloc=allocator تخصیص‌دهندهٔ ثبات برای استفاده (پیش‌فرض=linearscan) .INDENT 7.0 .INDENT 3.5 .sp .EX =bigblock: Big\-block register allocator =linearscan: linear scan register allocator =local: local register allocator =simple: simple register allocator .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-relocation\-model=model مدل بازتخصیص را از موارد زیر انتخاب می‌کند: .INDENT 7.0 .INDENT 3.5 .sp .EX =default: Target default relocation model =static: Non\-relocatable code =pic: Fully relocatable, position independent code =dynamic\-no\-pic: Relocatable external references, non\-relocatable code .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-spiller سرریزکننده (spiller) برای استفاده (پیش‌فرض=local) .INDENT 7.0 .INDENT 3.5 .sp .EX =simple: simple spiller =local: local spiller .EE .UNINDENT .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-x86\-asm\-syntax=syntax سبک کد خروجی از backend معماری X86 را انتخاب می‌کند: .INDENT 7.0 .INDENT 3.5 .sp .EX =att: Emit AT&T\-style assembly =intel: Emit Intel\-style assembly .EE .UNINDENT .UNINDENT .UNINDENT .SH "وضعیت خروج (EXIT STATUS)" .sp اگر \fBlli\fP در بارگذاری برنامه ناموفق باشد، با کد وضعیت 1 خارج می‌شود. در غیر این صورت، کد وضعیت خروج برنامه‌ای را که اجرا کرده است برمی‌گرداند. .SH "همچنین ببینید (SEE ALSO)" .sp \fBllc(1) \%\fP .SH "نویسندگان (AUTHORS)" نگهداری‌شده توسط تیم LLVM (https://llvm.org). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026, LLVM Project .\" End of generated man page.