.\" 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-REDUCE" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" llvm-reduce \- کاهش‌دهنده خودکار موارد آزمون LLVM .SH "خلاصه دستور (SYNOPSIS)" .sp \fBllvm\-reduce\fP [\fIoptions\fP] [\fIinput...\fP] .SH "توضیحات (DESCRIPTION)" .sp ابزار \fBllvm\-reduce\fP پروژه‌ای است که می‌تواند برای کاهش اندازه موارد آزمون LLVM به کار رود. این ابزار با حذف کدهای زائد یا غیرضروری از موارد آزمون LLVM عمل می‌کند، در حالی که همچنان توانایی آن‌ها را در تشخیص باگ‌ها حفظ می‌نماید. .sp اگر \fBinput\fP برابر با \(dq\fB\-\fP\(dq باشد، \fBllvm\-reduce\fP از ورودی استاندارد می‌خواند. در غیر این صورت، از \fBنام‌فایل‌های\fP مشخص‌شده خواهد خواند\&. .sp ابزار LLVM\-Reduce ابزاری سودمند برای کاهش اندازه و پیچیدگی موارد آزمون LLVM است و شناسایی و اشکال‌زدایی مسائل را در زیرساخت کامپایلر LLVM ساده‌تر می‌کند. .SH "گزینه‌های عمومی (GENERIC OPTIONS)" .INDENT 0.0 .TP .B \-\-help نمایش گزینه‌های موجود (برای گزینه‌های بیشتر از \-\-help\-hidden استفاده کنید). .UNINDENT .INDENT 0.0 .TP .B \-\-abort\-on\-invalid\-reduction توقف عملیات در صورتی که هر کاهش منجر به ایجاد IR نامعتبر شود. .UNINDENT .INDENT 0.0 .TP .B \-\-in\-place هشدار: این گزینه فایل ورودی شما را با نسخه کاهش‌یافته جایگزین خواهد کرد! .UNINDENT .INDENT 0.0 .TP .B \-\-ir\-passes= توصیف متنی خط لوله گذارها (pass pipeline)، همانند آنچه به \fIopt \-passes\fP ارسال می‌شود\&. .UNINDENT .INDENT 0.0 .TP .B \-j حداکثر تعداد رشته‌ها (threads) برای پردازش تکه‌ها (chunks). برای غیرفعال کردن موازی‌سازی، مقدار را برابر با 1 قرار دهید. .UNINDENT .INDENT 0.0 .TP .B \-\-max\-pass\-iterations= حداکثر تعداد دفعات اجرای مجموعه کامل گذارهای دلتا (delta passes) (پیش‌فرض=5). .UNINDENT .INDENT 0.0 .TP .B \-\-mtriple= تنظیم سه‌گانه هدف (target triple). .UNINDENT .INDENT 0.0 .TP .B \-\-preserve\-debug\-environment ویژگی‌های مورد استفاده برای دیباگ خرابی‌ها (گزارش‌های خرابی، llvm\-symbolizer و core dumpها) را غیرفعال نکن. .UNINDENT .INDENT 0.0 .TP .B \-\-print\-delta\-passes چاپ فهرست گذارهای دلتا، قابل ارسال به \-\-delta\-passes به‌صورت فهرستی جداشده با کاما. .UNINDENT .INDENT 0.0 .TP .B \-\-skip\-delta\-passes= گذارهای دلتایی که نباید اجرا شوند، جداشده با کاما. به‌طور پیش‌فرض، تمام گذارهای دلتا اجرا می‌شوند. .UNINDENT .INDENT 0.0 .TP .B \-\-starting\-granularity\-level= تعداد دفعات تقسیم تکه‌ها پیش از نخستین آزمون. .sp نکته: دانه‌بندی (Granularity) به سطح جزئیاتی اشاره دارد که فرایند کاهش در آن عمل می‌کند. دانه‌بندی کمتر به این معناست که فرایند کاهش در سطحی درشت‌دانه‌تر (coarse\-grained) عمل می‌کند، در حالی که دانه‌بندی بیشتر به معنای عمل در سطحی ریزدانه‌تر (fine\-grained) است. .UNINDENT .INDENT 0.0 .TP .B \-\-test= نام آزمون جالب‌بودن (interesting\-ness test) که باید اجرا شود. .UNINDENT .INDENT 0.0 .TP .B \-\-test\-arg= آرگومان‌های ارسالی به آزمون جالب‌بودن. .UNINDENT .INDENT 0.0 .TP .B \-\-verbose چاپ اطلاعات دیباگ اضافی. .UNINDENT .INDENT 0.0 .TP .B \-\-write\-tmp\-files\-as\-bitcode فایل‌های موقت را همیشه به‌جای IR متنی، به‌صورت بیت‌کد (bitcode) بنویس. .UNINDENT .INDENT 0.0 .TP .B \-x={ir|mir} زبان ورودی به‌صورت ir یا mir. .UNINDENT .SH "وضعیت خروج (EXIT STATUS)" .sp در شرایط عادی، \fBllvm\-reduce\fP مقدار 0 را برمی‌گرداند. در صورت بروز هرگونه خطا، یک کد خروج غیرصفر برمی‌گرداند. اگر آزمون جالب‌بودن گزارش دهد که ورودی اولیه جالب نبوده است، مقدار 2 را برمی‌گرداند. .SH "مثال‌ها (EXAMPLES)" .sp از \fBllvm\-reduce\fP می‌توان برای ساده‌سازی تستی که باعث خرابی (crash) کامپایلر می‌شود استفاده کرد. .sp برای مثال، فرض کنیم \fIopt\fP هنگام اجرا با \fI\-O2\fP بر روی فایل IR با نام \fItest.ll\fP با پیام خطای \fIAssertion failed at line 1234 of WhateverFile.cpp\fP دچار خرابی می‌شود\&. .sp مورد آزمون \fItest.ll\fP را می‌توان با فراخوانی دستور زیر کاهش داد: .INDENT 0.0 .INDENT 3.5 .sp .EX $(LLVM_BUILD_FOLDER)/bin/llvm\-reduce \-\-test=script.sh /test.ll .EE .UNINDENT .UNINDENT .sp اسکریپت پوسته ارائه‌شده به گزینه \fItest\fP شامل موارد زیر است: .INDENT 0.0 .INDENT 3.5 .sp .EX $(LLVM_BUILD_FOLDER)/bin/opt \-O2 \-disable\-output $1 \e |& grep \(dqAssertion failed at line 1234 of WhateverFile.cpp\(dq .EE .UNINDENT .UNINDENT .sp (در این اسکریپت، \fIgrep\fP در صورت یافتن رشته با 0 خارج می‌شود و این مقدار تبدیل به وضعیت خروج کل اسکریپت خواهد شد.) .sp این مثال می‌تواند به ابزارهای دیگری که فایل‌های IR را پردازش می‌کنند، مانند \fIllc\fP نیز تعمیم داده شود\&. .SH "نویسندگان (AUTHORS)" توسط تیم LLVM نگهداری می‌شود (https://llvm.org). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026, LLVM Project .\" End of generated man page.