موارد زیر
همواره
توسط llvm-bcanalyzer
چاپ
میشوند.
این موارد
تشکیلدهنده
خروجی
خلاصه
هستند.
تحلیل
بیتکد
ماژول (Bitcode Analysis Of
Module)
این مورد
صرفاً نام
ماژولی را
نشان
میدهد که
تحلیل
بیتکد
برای آن
تولید
میشود.
شماره
نسخه
بیتکد (Bitcode Version
Number)
نسخه
بیتکد (نه
نسخه LLVM)
فایلی که
توسط
تحلیلگر
خوانده شده
است.
اندازه
فایل (File Size)
اندازه
کل فایل
بیتکد بر
حسب بایت.
بایتهای
ماژول (Module Bytes)
اندازه
بلوک ماژول
بر حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
است.
بایتهای
توابع (Function Bytes)
اندازه
تمام
بلوکهای
توابع بر
حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
است.
بایتهای
انواع
سراسری (Global Types
Bytes)
اندازه
استخر
انواع
سراسری (Global Types Pool)
بر حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود. این
مقدار،
اندازه
تعاریف
تمام انواع
داده در
فایل
بیتکد
است.
بایتهای
استخر
مقادیر
ثابت (Constant Pool Bytes)
اندازه
بلوکهای
استخر
مقادیر
ثابت بر حسب
بایت. درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
بایتهای
متغیرهای
سراسری
ماژول (Module Globals Bytes)
اندازه
تعاریف
متغیرهای
سراسری و
مقداردهندههای
اولیه
آنها بر
حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
بایتهای
فهرست
دستورالعملها
(Instruction List Bytes)
اندازه
تمام
فهرستهای
دستورالعمل
در تمام
توابع بر
حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
توجه داشته
باشید که
این مقدار
در
بایتهای
توابع (Function Bytes)
نیز
گنجانده
شده است.
بایتهای
جدول
فشردهسازی
(Compaction Table Bytes)
اندازه
تمام
جدولهای
فشردهسازی
در تمام
توابع بر
حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
توجه داشته
باشید که
این مقدار
در
بایتهای
توابع (Function Bytes)
نیز
گنجانده
شده است.
بایتهای
جدول
نمادها (Symbol Table
Bytes)
اندازه
تمام
جدولهای
نماد در
تمام توابع
بر حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
توجه داشته
باشید که
این مقدار
در
بایتهای
توابع (Function Bytes)
نیز
گنجانده
شده است.
بایتهای
کتابخانههای
وابسته (Dependent Libraries
Bytes)
اندازه
فهرست
کتابخانههای
وابسته در
ماژول بر
حسب بایت.
درصد
بیانشده
نسبت به
اندازه
فایل (File Size)
محاسبه
میشود.
توجه داشته
باشید که
این مقدار
در
بایتهای
سراسری
ماژول (Module Globals Bytes)
نیز
گنجانده
شده است.
تعداد
بلوکهای
بیتکد (Number Of Bitcode
Blocks)
تعداد کل
بلوکها از
هر نوع در
فایل
بیتکد.
تعداد
توابع (Number Of Functions)
تعداد کل
تعاریف
توابع در
فایل
بیتکد.
تعداد
انواع (Number Of Types)
تعداد کل
انواع
تعریفشده
در استخر
انواع
سراسری (Global Types Pool).
تعداد
مقادیر
ثابت (Number Of Constants)
تعداد کل
مقادیر
ثابت (از هر
نوعی) که در
استخر
مقادیر
ثابت (Constant Pool)
تعریف
شدهاند.
تعداد
بلوکهای
پایه (Number Of Basic Blocks)
تعداد کل
بلوکهای
پایه (basic blocks)
تعریفشده
در تمام
توابع فایل
بیتکد.
تعداد
دستورالعملها
(Number Of Instructions)
تعداد کل
دستورالعملهای
تعریفشده
در تمام
توابع فایل
بیتکد.
تعداد
دستورالعملهای
طولانی (Number Of Long
Instructions)
تعداد کل
دستورالعملهای
طولانی
تعریفشده
در تمام
توابع فایل
بیتکد.
دستورالعملهای
طولانی
آنهایی
هستند که
بیش از ۴
بایت فضا
اشغال
میکنند.
بهطور
معمول،
دستورالعملهای
طولانی
شامل GetElementPtr با
چندین
اندیس،
گرههای PHI،
و فراخوانی
توابع با
تعداد
زیادی
آرگومان
هستند.
تعداد
عملوندها (Number Of
Operands)
تعداد کل
عملوندهای
استفادهشده
در تمام
دستورالعملهای
فایل
بیتکد.
تعداد
جدولهای
فشردهسازی
(Number Of Compaction Tables)
تعداد کل
جدولهای
فشردهسازی
در تمام
توابع فایل
بیتکد.
تعداد
جدولهای
نمادها (Number Of Symbol
Tables)
تعداد کل
جدولهای
نماد در
تمام توابع
فایل
بیتکد.
تعداد
کتابخانههای
وابسته (Number Of Dependent
Libs)
تعداد کل
کتابخانههای
وابسته
یافتشده
در فایل
بیتکد.
اندازه
کل
دستورالعملها
(Total Instruction Size)
اندازه
کل
دستورالعملها
در تمام
توابع فایل
بیتکد.
میانگین
اندازه
دستورالعملها
(Average Instruction Size)
میانگین
تعداد
بایتها به
ازای هر
دستورالعمل
در تمام
توابع فایل
بیتکد. این
مقدار از
تقسیم
اندازه کل
دستورالعملها
(Total Instruction Size) بر
تعداد
دستورالعملها
(Number Of Instructions) به دست
میآید.
بیشینه
شماره شیار
نوع (Maximum Type Slot Number)
بزرگترین
مقدار
استفادهشده
برای شماره
شیار (slot number) یک
نوع داده.
مقادیر
بزرگتر
شماره
شیار،
بایتهای
بیشتری را
برای
کدگذاری
اشغال
میکنند.
بیشینه
شماره شیار
مقدار (Maximum Value Slot Number)
بزرگترین
مقدار
استفادهشده
برای شماره
شیار (slot number) یک
مقدار (Value).
مقادیر
بزرگتر
شماره
شیار،
بایتهای
بیشتری را
برای
کدگذاری
اشغال
میکنند.
بایت به
ازای هر
مقدار (Bytes Per Value)
میانگین
اندازه
تعریف یک
مقدار (Value) از
هر نوعی. این
مقدار از
تقسیم
اندازه
فایل (File Size) بر
تعداد کل
مقادیر از
هر نوع به
دست
میآید.
بایت به
ازای هر
متغیر
سراسری (Bytes Per Global)
میانگین
اندازه یک
تعریف
سراسری
(مقادیر
ثابت و
متغیرهای
سراسری).
بایت به
ازای هر
تابع (Bytes Per Function)
میانگین
تعداد
بایتها به
ازای هر
تعریف تابع.
این مقدار
از تقسیم
بایتهای
توابع (Function Bytes)
بر تعداد
توابع (Number Of Functions)
به دست
میآید.
تعداد
اعداد صحیح
۳۲ بیتی VBR (# of VBR 32-bit
Integers)
تعداد کل
اعداد صحیح
۳۲ بیتی
کدگذاریشده
با استفاده
از طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR).
تعداد
اعداد صحیح
۶۴ بیتی VBR (# of VBR 64-bit
Integers)
تعداد کل
اعداد صحیح
۶۴ بیتی
کدگذاریشده
با استفاده
از طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR).
بایتهای
فشردهشده VBR
(# of VBR Compressed Bytes)
تعداد کل
بایتهای
مصرفشده
توسط اعداد
صحیح ۳۲
بیتی و ۶۴
بیتی که از
طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR) استفاده
میکنند.
بایتهای
گسترشیافته
VBR (# of VBR Expanded Bytes)
تعداد کل
بایتهایی
که اعداد
صحیح ۳۲
بیتی و ۶۴
بیتی در
صورت عدم
فشردهسازی
با طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate)،
مصرف
میکردند.
بایتهای
صرفهجوییشده
با VBR (Bytes Saved With VBR)
تعداد کل
بایتهای
صرفهجوییشده
با استفاده
از طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR). درصد
بیانشده
نسبت به # of VBR Expanded
Bytes (بایتهای
گسترشیافته
VBR) سنجیده
میشود.
تعاریف
زیر تنها در
صورتی
نمایش داده
میشوند که
گزینهٔ -nodetails
مشخص نشده
باشد. خروجی
تفصیلی،
اطلاعات
تکمیلی را
بر پایهٔ هر
تابع ارائه
میدهد.
Type
Byte Size
تعداد کل
بایتهای
موجود در
بلوک تابع.
Basic Blocks
تعداد
بلوکهای
پایهٔ
تعریفشده
توسط تابع.
Instructions
تعداد
دستورالعملهای
تعریفشده
توسط تابع.
Long Instructions
تعداد
دستورالعملهایی
در تابع که
از قالب
دستورالعمل
طولانی
استفاده
میکنند.
Operands
تعداد
عملوندهای
استفادهشده
توسط تمام
دستورالعملها
در تابع.
Instruction Size
تعداد
بایتهای
مصرفشده
توسط
دستورالعملها
در تابع.
Average Instruction Size
میانگین
تعداد
بایتهای
مصرفشده
توسط
دستورالعملها
در تابع. این
مقدار با
تقسیم Instruction Size بر
Instructions محاسبه
میشود.
Bytes Per Instruction
میانگین
تعداد
بایتهای
استفادهشده
توسط تابع
بهازای هر
دستورالعمل.
این مقدار
با تقسیم Byte Size
بر Instructions محاسبه
میشود.
توجه داشته
باشید که
این مقدار
با Average Instruction Size
یکسان
نیست؛ چرا
که عددی را
متناسب با
اندازهٔ کل
تابع
محاسبه
میکند، نه
صرفاً
اندازهٔ
فهرست
دستورالعملها.
Number of VBR 32-bit Integers
تعداد کل
اعداد صحیح
۳۲ بیتی
یافتشده
در این تابع
(برای هر
کاربردی).
Number of VBR 64-bit Integers
تعداد کل
اعداد صحیح
۶۴ بیتی
یافتشده
در این تابع
(برای هر
کاربردی).
Number of VBR Compressed Bytes
تعداد کل
بایتهای
مصرفشده
در این تابع
توسط اعداد
صحیح ۳۲
بیتی و ۶۴
بیتی که از
طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR) استفاده
میکنند.
Number of VBR Expanded Bytes
تعداد کل
بایتهایی
در این تابع
که در صورت
فشرده نشدن
اعداد صحیح
۳۲ بیتی و ۶۴
بیتی با طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR)، مصرف
میشدند.
Bytes Saved With VBR
تعداد کل
بایتهای
ذخیرهشده
در این تابع
با استفاده
از طرح
کدگذاری
نرخ بیت
متغیر (Variable Bit Rate یا
VBR). این درصد
نسبت به # of VBR Expanded Bytes
سنجیده
میشود.