.\" 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 "LLVM-OPT-REPORT" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" llvm-opt-report \- تولید گزارش بهینه‌سازی از طریق YAML .SH "خلاصه دستور (SYNOPSIS)" .sp \fBllvm\-opt\-report\fP [\fIگزینه‌ها\fP] [input] .SH "توضیحات (DESCRIPTION)" .sp ابزار \fBllvm\-opt\-report\fP برای تولید گزارش بهینه‌سازی از فایل‌های رکورد بهینه‌سازی YAML به کار می‌رود. .sp پیش از اجرای \fBllvm\-opt\-report\fP\&، باید یک فایل ورودی رکورد بهینه‌سازی YAML ایجاد کنید. .sp این ابزار اطلاعاتی درباره زمان اجرا، مصرف حافظه و سایر جزئیات هر مرحله بهینه‌سازی (optimization pass) ارائه می‌دهد. .INDENT 0.0 .INDENT 3.5 .sp .EX $ clang \-c foo.c \-o foo.o \-O3 \-fsave\-optimization\-record .EE .UNINDENT .UNINDENT .sp سپس، با استفاده از دستور \fBllvm\-opt\-report\fP و مشخص کردن فایل رکورد بهینه‌سازی YAML یعنی \fBfoo.opt.yaml\fP به‌عنوان ورودی، گزارش را ایجاد می‌کنید. .INDENT 0.0 .INDENT 3.5 .sp .EX $ llvm\-opt\-report foo.opt.yaml \-o foo.lst .EE .UNINDENT .UNINDENT .sp فایل foo.lst همان گزارش بهینه‌سازی تولیدشده است. .INDENT 0.0 .INDENT 3.5 .sp .EX < foo.c 1 | void bar(); 2 | void foo() { bar(); } 3 | 4 | void Test(int *res, int *c, int *d, int *p, int n) { 5 | int i; 6 | 7 | #pragma clang loop vectorize(assume_safety) 8 V4,1 | for (i = 0; i < 1600; i++) { 9 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i]; 10 | } 11 | 12 U16 | for (i = 0; i < 16; i++) { 13 | res[i] = (p[i] == 0) ? res[i] : res[i] + d[i]; 14 | } 15 | 16 I | foo(); 17 | 18 | foo(); bar(); foo(); I | ^ I | ^ 19 | } 20 | .EE .UNINDENT .UNINDENT .sp نمادهایی که در سمت چپ برنامه چاپ می‌شوند، نوع بهینه‌سازی انجام‌شده را مشخص می‌کنند. معانی این نمادها به شرح زیر است: .INDENT 0.0 .IP \(bu 2 I: تابع درون‌خطی (inlined) شده است. .IP \(bu 2 U: حلقه باز شده است (unrolled). عدد پس از آن ضریب باز شدن حلقه (unroll factor) را نشان می‌دهد. .IP \(bu 2 V: حلقه برداری‌سازی شده است (vectorized). اعداد پس از آن طول بردار و ضریب درهم‌تنیدگی (interleave factor) را نشان می‌دهند. .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 اگر یک خط مشخص از کد دو بار در خروجی آورده شود، به این معنی است که یک مرحله بهینه‌سازی یکسان دو بار روی آن خط از کد اعمال شده و این مرحله در تکرار دوم توانسته است کد را بیش از پیش بهینه‌سازی کند. .UNINDENT .UNINDENT .SH "گزینه‌ها (OPTIONS)" .sp اگر \fBinput\fP برابر \(dq\fB\-\fP\(dq باشد یا وارد نشود، \fBllvm\-opt\-report\fP ورودی را از ورودی استاندارد می‌خواند؛ در غیر این صورت، از نام فایل مشخص‌شده خوانده خواهد شد. .sp اگر گزینه \fB\-o\fP مشخص نشود، \fBllvm\-opt\-report\fP خروجی خود را به خروجی استاندارد ارسال خواهد کرد. اگر برای گزینه \fB\-o\fP مقدار \(dq\fB\-\fP\(dq تعیین شود، خروجی نیز به خروجی استاندارد ارسال خواهد شد. .INDENT 0.0 .TP .B \-\-help نمایش گزینه‌های موجود. .UNINDENT .INDENT 0.0 .TP .B \-\-version نمایش نسخه این برنامه. .UNINDENT .INDENT 0.0 .TP .B \-\-format= قالب فایل رکورد بهینه‌سازی. آرگومان ورودی می‌تواند یکی از موارد زیر باشد: .INDENT 7.0 .IP \(bu 2 yaml .IP \(bu 2 bitstream .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-no\-demangle نام توابع رمزگشایی (demangle) نشود. .UNINDENT .INDENT 0.0 .TP .B \-o= فایل خروجی. .UNINDENT .INDENT 0.0 .TP .B \-r= ریشه برای مسیرهای ورودی نسبی. .UNINDENT .INDENT 0.0 .TP .B \-s ضرایب برداری‌سازی و موارد مشابه در گزارش گنجانده نشوند. .UNINDENT .SH "وضعیت خروج (EXIT STATUS)" .sp دستور \fBllvm\-opt\-report\fP در صورت موفقیت مقدار 0 را برمی‌گرداند. در غیر این صورت، یک پیام خطا در خروجی خطای استاندارد چاپ شده و ابزار مقدار 1 را برمی‌گرداند. .SH "نویسندگان (AUTHORS)" توسط تیم LLVM نگهداری می‌شود (). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026, LLVM Project .\" End of generated man page.