এলএলভিএমের বেশ অদ্ভুত ব্যাখ্যা সহ ফাই নির্দেশনা রয়েছে:
'ফাই' নির্দেশটি এসএসএ গ্রাফটিতে the নোডটি কার্যকারিতা উপস্থাপনের জন্য প্রয়োগ করা হয়।
সাধারণত এটি শাখা বাস্তবায়নের জন্য ব্যবহৃত হয়। যদি আমি সঠিকভাবে বুঝতে পারি তবে নির্ভরতা বিশ্লেষণ সম্ভব করে তোলা দরকার এবং কিছু ক্ষেত্রে এটি অপ্রয়োজনীয় লোড এড়াতে সহায়তা করতে পারে। তবে এটি ঠিক কী করে তা এখনও বোঝা শক্ত।
ক্যালিডোস্কোপের উদাহরণ এটি if
কেস জন্য মোটামুটি সুন্দরভাবে ব্যাখ্যা করে । তবে এটি পরিষ্কার কিভাবে মত লজিক্যাল অপারেশন বাস্তবায়ন না &&
এবং||
। আমি যদি অনলাইনে llvm সংকলকটিতে নিম্নলিখিতটি লিখি :
void main1(bool r, bool y) {
bool l = y || r;
}
শেষ বেশ কয়েকটি লাইন আমাকে সম্পূর্ণ বিভ্রান্ত করেছে:
; <label>:10 ; preds = %7, %0
%11 = phi i1 [ true, %0 ], [ %9, %7 ]
%12 = zext i1 %11 to i8
দেখে মনে হচ্ছে ফাই নোড একটি ফলাফল তৈরি করে যা ব্যবহার করা যেতে পারে। এবং আমি ছাপে ছিলাম যে ফাই নোড কেবলমাত্র কোন পাথ থেকে মানগুলি আসবে তা নির্ধারণ করে।
কেউ কোনও ফি নোড কী তা ব্যাখ্যা করতে পারেন এবং কীভাবে এটি প্রয়োগ ||
করবেন?
phi
নোড কম্পাইলার সমস্যা একটি সমাধান "স্ট্যাটিক একক নিয়োগ" ফর্ম মধ্যে আইআর রূপান্তর হয়। সমাধানটি আরও ভালভাবে বোঝার জন্য আমি সমস্যাটি আরও ভালভাবে বোঝার পরামর্শ দেব। সুতরাং আমি আপনাকে আপ করব " কেনphi
নোড "।