.\" 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-DIFF" "1" "2026-07-15" "22" "LLVM" .SH "نام (NAME)" llvm\-diff \- ابزار مقایسه ساختاری LLVM .SH "خلاصه دستور (SYNOPSIS)" .sp \fBllvm\-diff\fP [\fIoptions\fP] \fImodule 1\fP \fImodule 2\fP [\fIglobal name ...\fP] .SH "توضیحات (DESCRIPTION)" .sp دستور \fBllvm\-diff\fP ساختار دو ماژول LLVM را با تمرکز اصلی بر تفاوت‌ها در تعاریف توابع با یکدیگر مقایسه می‌کند. تفاوت‌های ناچیز، مانند تغییر در ترتیب متغیرهای سراسری یا نام مقادیر محلی، نادیده گرفته می‌شوند. .sp یک ماژول ورودی در صورتی که نام آن با \(aq.ll\(aq پایان یابد، به عنوان یک فایل اسمبلی تفسیر می‌شود؛ در غیر این صورت به عنوان یک فایل bitcode خوانده خواهد شد. .sp اگر فهرستی از نام‌های سراسری ارائه شود، فقط مقادیر دارای آن نام‌ها مقایسه می‌شوند؛ در غیر این صورت، تمام مقادیر سراسری مقایسه شده و برای متغیرهای سراسری که فقط در یکی از دو ماژول حضور دارند، پیام‌های تشخیصی تولید می‌شود. .sp دستور \fBllvm\-diff\fP دو تابع را از طریق مقایسه بلوک‌های پایه (basic blocks) آن‌ها با شروع از بلوک‌های ورودی مقایسه می‌کند. اگر پایان‌دهنده‌ها (terminators) مطابقت داشته باشند، جانشین‌های متناظر مقایسه می‌شوند؛ در غیر این صورت نادیده گرفته خواهند شد. این الگوریتم به تغییرات در جریان کنترل (control flow) بسیار حساس است که معمولاً مانع از شناسایی تغییرات پس‌آیند (downstream) می‌شود. .sp ابزار \fBllvm\-diff\fP به عنوان یک ابزار اشکال‌زدایی برای توسعه‌دهندگان passها و فرانت‌اند‌های LLVM در نظر گرفته شده است. این ابزار قالب خروجی پایداری ندارد. .SH "وضعیت خروج (EXIT STATUS)" .sp اگر \fBllvm\-diff\fP هیچ تفاوتی بین ماژول‌ها پیدا نکند، با مقدار 0 خارج شده و هیچ خروجی‌ای تولید نمی‌کند. در غیر این صورت با یک مقدار غیرصفر خارج خواهد شد. .SH "گزارش باگ‌ها (BUGS)" .sp بسیاری از تفاوت‌های مهم، مانند تغییرات در پیوند (linkage) یا ویژگی‌های توابع، تشخیص داده نمی‌شوند. .sp تغییرات در رفتار حافظه (برای مثال، ادغام بارگذاری‌ها یا coalescing loads) می‌تواند باعث شناسایی تفاوت‌های عظیمی در بلوک‌ها شود. .SH "نویسندگان (AUTHORS)" توسط تیم LLVM نگهداری می‌شود (https://llvm.org). .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2003-2026, LLVM Project .\" End of generated man page.