LLVM-EXTRACT(1) LLVM LLVM-EXTRACT(1)

llvm-extract - استخراج یک تابع از یک ماژول LLVM

llvm-extract [options] --func function-name [filename]

دستور llvm-extract نام یک تابع را دریافت کرده و آن را از فایل بیت‌کد (bitcode) مشخص‌شدهٔ LLVM استخراج می‌کند. این دستور عمدتاً به عنوان ابزاری برای اشکال‌زدایی جهت کوچک کردن نمونه‌های آزمایشی از برنامه‌های بزرگ‌تری که باگی را تحریک می‌کنند، به کار می‌رود.

علاوه بر استخراج بیت‌کد تابع مشخص‌شده، llvm-extract همچنین متغیرهای سراسری غیرقابل‌دسترس، پیش‌نمونه‌ها (prototypes) و انواع استفاده‌نشده را حذف می‌کند.

دستور llvm-extract ورودی خود را در صورتی که filename حذف شده باشد یا برابر با - باشد، از ورودی استاندارد می‌خواند. خروجی همیشه در خروجی استاندارد نوشته می‌شود، مگر اینکه گزینهٔ -o مشخص شده باشد (به ادامه مراجعه کنید).

--alias alias-name

نام مستعار (alias) با نام function-name را از بیت‌کد LLVM استخراج می‌کند. می‌تواند چندین بار برای استخراج هم‌زمان چند نام مستعار مشخص شود.

--ralias alias-regular-expr

نام‌های مستعار منطبق با alias-regular-expr را از بیت‌کد LLVM استخراج می‌کند. تمام نام‌های مستعار منطبق با عبارت منظم استخراج خواهند شد. می‌تواند چندین بار مشخص شود.

--bb basic-block-specifier

بلوک(های) پایهٔ مشخص‌شده در basic-block-specifier را استخراج می‌کند. می‌تواند چندین بار مشخص شود. هر جفت مشخص‌کنندهٔ <function:bb[;bb]> یک تابع ایجاد خواهد کرد. اگر چندین بلوک پایه در یک جفت مشخص شوند، اولین بلوک در این دنباله باید بر بقیه غالب (dominate) باشد.

--delete

متغیرهای سراسری (Globals) مشخص‌شده را از ماژول حذف می‌کند.

-f

فعال‌سازی خروجی باینری روی ترمینال‌ها. در حالت عادی، اگر جریان خروجی یک ترمینال باشد، llvm-extract از نوشتن خروجی خام بیت‌کد خودداری می‌کند. با این گزینه، llvm-extract خروجی خام بیت‌کد را بدون در نظر گرفتن دستگاه خروجی خواهد نوشت.

--func function-name

تابع با نام function-name را از بیت‌کد LLVM استخراج می‌کند. می‌تواند چندین بار برای استخراج هم‌زمان چند تابع مشخص شود.

--rfunc function-regular-expr

تابع(های) منطبق با function-regular-expr را از بیت‌کد LLVM استخراج می‌کند. تمام توابع منطبق با عبارت منظم استخراج خواهند شد. می‌تواند چندین بار مشخص شود.

--glob global-name

متغیر سراسری با نام global-name را از بیت‌کد LLVM استخراج می‌کند. می‌تواند چندین بار برای استخراج هم‌زمان چند متغیر سراسری مشخص شود.

--rglob glob-regular-expr

متغیر(های) سراسری منطبق با global-regular-expr را از بیت‌کد LLVM استخراج می‌کند. تمام متغیرهای سراسری منطبق با عبارت منظم استخراج خواهند شد. می‌تواند چندین بار مشخص شود.

--keep-const-init

مقادیر متغیرهای سراسری ثابت (constant globals) را حفظ می‌کند.

--recursive

استخراج بازگشتی تمام توابع فراخوانی‌شده.

-help

چاپ خلاصه‌ای از گزینه‌های خط فرمان.

-o filename

نام فایل خروجی را مشخص می‌کند. اگر filename برابر "-" باشد (پیش‌فرض)، آنگاه llvm-extract خروجی خود را به خروجی استاندارد می‌فرستد.

-S

نوشتن خروجی در زبان میانی LLVM (به جای بیت‌کد).

اگر llvm-extract با موفقیت اجرا شود، با کد 0 خارج می‌شود. در غیر این صورت، اگر خطایی رخ دهد، با مقداری غیر صفر خارج خواهد شد.

bugpoint(1) <bugpoint.html>

توسط تیم LLVM نگهداری می‌شود (https://llvm.org).

2003-2026, LLVM Project

2026-07-15 22