HeadlinesBriefing HeadlinesBriefing.com

Rat-এর উন্নত রেজিস্টার অ্যালোকেটর লাইন কমায় এবং ভালো কোড তৈরি করে

Hacker News •
×

2026 অক্টোবর 7 — rat একটি ছোট কম্পাইলার ব্যাকএন্ড যার আধা কাজকাজ C99 ফ্রন্টএন্ড, x86-64 কোড জেনারেটর ব্যবহার করে যা ভিচুয়াল রেজিস্টার (vregs) কে ফিজিক্যাল রেজিস্টার বা স্ট্যাক স্লটে ম্যাপ করে। পুরানো লিনিয়ার-স্ক্যান অ্যালোকেটর 1392 লাইনে বেড়ে যাওয়ায়, প্রাথমিকতা বিন-প্যাকিং অ্যালোকেটরকে মাত্র 584 লাইনে লেখার প্রেরিত করে। এই নতুন অ্যালোকেটর গুরুত্বের অনুসারে লাইভ রেঞ্চ প্রদর্শন করে এবং প্রতিটিকে প্রথম উপযুক্ত রেজিস্টারে রাখে, LLVM-এর গ্রীডি অ্যালোকেটরের মতো কিন্তু সরল। একটি মান তার লেখা থেকে শেষ পাঠ অবধি লাইভ থাকে; দুইটি মান একটি রেজিস্টার ভাগ করে কেবল যদি কখনো একসাথে লাইভ না হয়। অনেক মান লাইভ হলে কিছু মেমোরিতে স্পিল হয়। কলিং কনেনশন অনুযায়ী কল-সেভ্ড রেজিস্টার (rbx rbp r12-r15) সংরক্ষিত রাখতে হয় যখন কলার-সেভ্ড রেজিস্টার পরিবর্তন করা যায়। যেমন দেখানো হয়েছে, h ফাংশন কলের মধ্যে y লাইভ রাখে কল-সেভ্ড রেজিস্টার রাখার জন্য স্পষ্ট অ্যালোকেটর লজিক ছাড়াই। অ্যালোকেটর পাঁচটি স্টেপ চালায়: লাইভ রেঞ্চ, ফিক্সড রেজিস্টার, কোয়ালেসিং, রেজিস্টার পিক করা, এবং স্পিল। প্রতিটি বান্ডল তার রেজিস্টার বা স্ট্যাক স্লট সম্পূর্ণ জীবনকাল ধরে রাখে, কখনো ইভিক্ট বা ভাগ করে না।

উৎস: Hacker News · সারাংশ: HeadlinesBriefing