[ورود به حساب]
 

 کامپایلر [شماره پروژه: 3943]
نام پروژه کامپایلر 
مهارت های لازم Assembly, C++ / C
تاریخ ارسال ۱۳۹۶/۰۶/۲۵ [2017-09-16 00:52:39]
تاریخ پایان ۱۳۹۶/۰۶/۳۰ [2017-09-21 00:52:39]
فرصت باقی مانده - روز برای ارسال پیشنهاد باقی مانده
بودجه ۱۰۰,۰۰۰ - ۳۰۰,۰۰۰ تومان
وضعیت پروژه پایان یافته
  ارسال پیغام خصوصی به سفارش دهنده (صاحب پروژه) پیغام خصوصی
  ابزار پروژه و پیشنهادهای ارسال شده
سفارش دهنده
 ElyasDiba
مکان  Tehran, ایران
  رتبه داده نشده

توضیح پروژه
برای اطلاعات بیشتر به سایت برنامه جو مراجعه نمایید

سلام،

من 4 پروژه compiler optimizer دارم که از LLVM و LLVM pass برای آنالیز کردن یک function ورودی استفاده می کند.

این پروژه ها برای کسانی که با LLVM آشنا هستند بسیار ساده بوده و می توانند از sample code های سایت مثل http://llvm.org/doxygen/InstCount_8cpp_source.html استفاده کنند.

اولین پروژه ساختن یک PASS از طریق LLVM بوده که تعداد Instruction های یک تابع (test) را شمرده و در خروجی چاپ می کند. این پروژه 5 روز مهلت داشته اما پروژه های بعدی زمان بیشتری دارند.

بعد از نصب LLVM فایل HELLO در دایرکتوری llvm-src/lib/Tansforms/Hello$ موجود است. این PASS را بعنوان template استفاده کرده و محتوای این folder را در یک folder جدید به اسم BasicblockHist کپی کرده و نام function ها و file ها و class ها را به تناسب عوض کنید.

فایل test.c را از Figure 1 (در فایل ضمیمه) ساخته و کامپایل کرده و به LLVM bitcode تبدیل کنید که باید شبیه به Figure 2 باشد. حالا basicblock pass را روی test اجرا کرده و باید Hello: erk مشاهده شود.

پروژه به این صورت است که BasicBlockHist.cpp باید تغییر داده شود تا تعداد instruction های هر basic block را بصورتی که در section 3 امده چاپ کند. بعلاوه دو هیستوگرام که خلاصه basic block distribution را نشان میدهند باید در انتها چاپ شود.
برای تست کد می توانید از test-suite/SingleSource/Benchmarks/Stanford استفاده کنید.
تحویل پروژه تحویل فایل BasicBlockHist.cpp است. تمام کد باید اینجا قرار داده شود و هیچ تغییری در ساختار LLVM داده نشود.

متن کامل پروژه در قسمت آپلود فایل بار گذاری شده، اما در صوزت هر گونه ابهام لطفا سوال کنید



اطلاعات اضافه شده در تاریخ: ۲۵/۰۶/۱۳۹۶ [2017-09-16 00:52:39]

فایل ضمیمه:
project1 (1).pdf

  ابزار پروژه

ارسال پیشنهاد ارسال پیشنهاد تغییر پیشنهاد تغییر پیشنهاد حذف حذف پیشنهاد تماس ارسال پیغام خصوصی به سفارش دهندهتماس پیغام خصوصی چاپ چاپ

 طبق قوانین وب سایت ارائه مشخصات تماس همانند شماره تلفن، آدرس، ایمیل، مسنجر و موارد مشابه به طرف مقابل (کدنویس یا سفارش دهنده) قبل از واگذاری پروژه، خلاف قوانین می باشد. شما کاربران گرامی می توانید در صورت مشاهده تخلف از سوی کاربران دیگر، موارد تخلف را به ما گزارش دهید.

پیشنهادهای ارسال شده توسط کدنویسان

سفارش دهنده درخواست پنهان کردن پیشنهادها را داده است. اگر شما صاحب پروژه هستید, لطفا به حساب خود وارد شوید تا پیشنهادها را مشاهده کنید.

^